我有一个包含站点的简单数据库,每个站点都有一堆帖子。
我正在尝试获取某个站点的所有“公共”帖子(我有一个名为 site 的变量,它已经是 EF 带来的实例)
第一个明显的事情是:
var posts = from post in site.Posts
where post.Public == true
orderby post.PublicationTime descending
select post;
这给我带来了我想要的东西,但是查看 SQL Server Profiler,WHERE 只过滤公共字段,而不是站点。事实上,在 SQL Server 中运行 Profiler 捕获的查询确实会带回来自所有站点的所有帖子(这显然是稍后在 ASP.Net 端过滤的)。
然后我尝试了:
var posts = from post in db.Posts
where post.Site == site && post.Public == true
orderby post.PublicationTime descending
select post;
结果相同。
我在这里做一些根本上愚蠢的事情吗?
实体框架是否总是在客户端过滤?
谢谢!
丹尼尔