Entity framework 实体框架对独立关联的查询是否会创建过于复杂的查询?
我首先使用EF5和代码创建一个项目 在我的对象设计中,我使用了“独立关联”,在本例中,“FarmWhereCowLifes”属性是一个“独立关联”Entity framework 实体框架对独立关联的查询是否会创建过于复杂的查询?,entity-framework,ef-code-first,entity-framework-5,Entity Framework,Ef Code First,Entity Framework 5,我首先使用EF5和代码创建一个项目 在我的对象设计中,我使用了“独立关联”,在本例中,“FarmWhereCowLifes”属性是一个“独立关联” public class Cow { public int CowId public string Name public DateTime Birthday public Farm FarmWhereCowLives } public class Farm { public int Far
public class Cow
{
public int CowId
public string Name
public DateTime Birthday
public Farm FarmWhereCowLives
}
public class Farm
{
public int FarmId
public string Name
public string Suburb
}
然而,当我运行一个查询,要求实体框架通过传入农场id为特定农场选择最新的奶牛时。。。例如:
_dbset.AsQueryable().Where(c => c.FarmWhereCowLives.FarmId == 1).OrderByDescending(c => c.Birthday).Take(1).Single()
(我正在使用通用存储库,只是为了以防万一,但我不这么认为)
执行的sql(我可以在sql分析器中看到)似乎过于复杂
乙二醇
问题是:
AndrewEF总是使用嵌套查询——我不知何故希望它也会使用嵌套查询进行FK关联。这并不一定意味着查询不正确。数据库中的查询优化器可以简化执行前的查询
SELECT TOP (1)
[Project1].[CowId] AS [CowId],
[Project1].[Name] AS [Name],
[Project1].[Birthday] AS [Birthday],
[Project1].[FarmWhereCowLives_FarmId] AS [FarmWhereCowLives_FarmId]
FROM
(
SELECT
[Extent1].[RateChangeId] AS [RateChangeId],
[Extent1].[CowId] AS [CowId],
[Extent1].[Name] AS [Name],
[Extent1].[Birthday] AS [Birthday],
[Extent1].[FarmWhereCowLives_FarmId] AS [FarmWhereCowLives_FarmId]
FROM [dbo].[Cow] AS [Extent1]
WHERE [Extent1].[FarmWhereCowLives_FarmId] = 1
)
AS [Project1]
ORDER BY [Project1].[Birthday] DESC'