【发布时间】:2014-04-28 01:15:10
【问题描述】:
我正在尝试调用 Include 并在 EF 中加载相关实体!在 WHERE 查询之后。我怎样才能在 EF 中做到这一点?在 SQL 中它看起来像这样:
SELECT * FROM T1 INNER JOIN ( SELECT * FROM T WHERE ... (filtering data)) as T2 ON T1.A = T2.A (loading data to filtered data)
如果我写 db.Include(..).Where(..) 或 db.Where(..).Include(..) ,在 SQL Server Profiler 中我会看到下一个查询:
SELECT ...
FROM T1 AS [Extent1]
INNER JOIN T2 AS [Extent2] ON [Extent1].[A] = [Extent2].[A]
LEFT OUTER JOIN T2 AS [Extent3] ON [Extent1].[A] = [Extent3].[A]
WHERE N'B1' = [Extent1].[B]
但是在这个第一次执行连接查询和过滤查询之后。
提前致谢
【问题讨论】:
-
Materialize entity framework query 的可能副本。 EF 不支持过滤的包含,但答案显示了一种解决方法。
标签: c# sql sql-server entity-framework