我有两个实体:主人和细节。 当我查询它们时,对数据库的结果查询是:
SELECT [Extent2]."needed columns listed here", [Extent1]."needed columns listed here"
FROM (SELECT * [Details]."all columns listed here"...
FROM [dbo].[Details] AS [Details]) AS [Extent1]
LEFT OUTER JOIN [dbo].[Master] AS [Extent2] ON [Extent1].[key] = [Extent2].[key]
WHERE [Extent1].[filterColumn] = @p__linq__0
我的问题是:为什么过滤器不在内部查询中?我怎样才能得到这个查询?我尝试了很多EF和Linq的表达方式。
我需要的是:
SELECT <anything needed>
FROM Master LEFT JOIN Details ON Master.key = Details.Key
WHERE filterColumn = @param
我在两个表中都进行了完整的顺序扫描,在我的生产环境中,每个表中都有数百万行。
非常感谢!!
答案 0 :(得分:2)
有时实体框架不会产生最佳查询。您可以执行以下一些操作进行优化。