我在entity Framework4中有一个名为Topic的实体。Topic具有指向Reply实体集合的导航属性。
我正在尝试制作一个查询,根据回复的数量获得最受欢迎的主题。
entityContainer.Topics.Single(x => x./* has the most replies of any topic */);
我不确定如何构造一个查询来实现这一点。
我对以下使用Entity Framework的Linq查询有问题:
from o in ctx.Entity
where o.EntityID = entityid
select o;
很简单,对吧?“实体”集合是许多其他类的父类。为这个简单的查询生成的SQL大约有20K个字符,其中包含大量的'case‘和'union’。除了框架编译查询需要一段时间外,执行查询也需要一段时间。
那么,在使用继承类进行查询的情况下,如何改进框架生成的SQL呢?或者我可以使用什么其他技术来避免这个问题?
广告
在LINQ to SQL中,我可以使用DataContext.GetTable<T>动态创建存储库。除了在特定DbContext上声明属性之外,Entity Framework4中有没有类似的方法来实现这一点?例如:
public MyDbContext: DbContext
{
public DbSet<MySet> MySets {get; set;}
}
我想知道如何使用LINQ to SQL动态创建/获取对MySets的引用,如下所示:
var mySet = MyDbContext.GetTable<MySet>();
我的地址表中有一个使用名为locationpoints的DBGeography类型的查询。查询如下所示。
From u in context.YogaSpaces
Where u.YogaSpaces.Addresses.LocationPoints(somePoints) < 5000
Select u.YogaSpaces
首先使用实体框架代码,我不能在LocationPoints上创建索引。因此,我想知道是应该探索MongoDB的空间数据索引功能,还是应该考虑在SQL Server中创建索引的其他方法,而不需要先使用Entity Framework编写代码。如果99%的查询都在获取
我正在尝试使用实体框架核心2.2在c#中对此(SQL)执行一个类似的查询
select ST_LengthSpheroid(ST_MakeLine(a."Location"),'SPHEROID["WGS 84",6378137,298.257223563]') AS Length
from (select * from "Logs" where "CarId" = 191
order by "Id") as a;
在entity framework > 2.0中,我曾尝试执行左连
我在Linq中有以下查询:
var query = from question in context.Questions.Include("QAnswers")
join answer in context.Answers
on question.id equals answer.qst
where answer.user == param_userID
select question;
return query.toList();
问题是它根本不加载"QAn
我的代码需要大约3秒的时间来执行60个雇员,这是很糟糕的性能。我希望我的代码最多能在0.5秒内运行。我有一个方法,需要在我的数据库中的5个表。因为你只能在你的查询中.include("AdjescentTable"),我不得不做3个查询,取得他们的结果,并将它们添加到我的Employee中。
var feuilleDeTemps = from fdt in context.FT.Include("FTJ") where
(fdt.ID_Employe == employe.ID_Employe) &&
(fdt.DateDepart <=
刚开始使用Entity Framework (Code First),我不得不说,在加载相当复杂的SQL数据时,我遇到了很多问题。例如,假设我有以下表格,其中存储了哪些动物属于世界上哪些地区,并对这些动物进行了分类。
Table: Region
Id: integer
Name string
Table AnimalCategory
Id integer
Name: string
RegionId: integer -- Refers back Region
Table Animal
Id integer
AnimalCategoryId integer -- Refers back A
我在Play Framework 2/Ebean中有两种模型,“文章”和“标记”,它们之间有一个ManyToMany关系。
文章:
@Entity
public class Article extends Model {
@ManyToMany
List<Tag> tags;
// ...
}
标签:
@Entity
public class Tag extends Model {
@ManyToMany
List<Article> articles;
// ...
}
给定一个List<Tag>,如何为包含列表中标记的All的文章编
NHibernate有一个称为"Subselect Fetching“的抓取策略,详细信息如下:
TLDR:我们的想法是当我们有一个这样的实体时:
class Foo
{
ICollection<Bar> Bars { get; set; }
}
我们可以在单独的查询中检索Foos和Bars,而不是进行连接(结果由NHibernate拼接在一起)。在伪代码中:
SELECT * FROM Foo WHERE Name = 'John'
SELECT * FROM Bar WHERE FooId IN (:idFromFirstQuery)
这在Fo
我在Play Framework中有以下模型。
@Entity
public class Parent extends Model {
@Id
public Long id;
public String name;
public List<Child> children = new ArrayList<Child>();
}
@Entity
public class Child extends Model {
// Entity 2
@Id
public Long id
public String name;
@ManyToO
对于编译的查询,在LINQ to Object Entity FrameWork中,它基本上允许查询一次编译,然后可以在不编译另一次的情况下重用。
例如:
using System.Data.Objects;
public static Func<entity, string, IQueryable<Entity>>
TestQuery = CompiledQuery.Compile((entity db, string param) =>
from e in ctx.Entities where e.Field == param sele
我正在生成实体SQL以在我的应用程序中提供动态查询支持。但是,我一直无法找到如何使用Entity Framework5在Entity SQL中指定空间条件。
使用Linq to Entities对具有包含空间字段的实体的模型进行查询,如下所示:
var a = new Model1Container();
var b = from c in a.Entity1
where c.Loc.Intersects(System.Data.Spatial.DbGeography.FromText("POINT (43 -73)"))
select c;
生