【发布时间】:2011-01-15 13:28:59
【问题描述】:
我有一个包含站点的简单数据库,每个站点都有一堆帖子。
我正在尝试获取某个站点的所有“公共”帖子(我有一个名为 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;
同样的结果。
我在这里做了一些根本上愚蠢的事情吗?
实体框架总是在客户端过滤吗?
谢谢!
丹尼尔
【问题讨论】:
-
你能发布站点/帖子类吗?
-
我假设 Public 是布尔值,但 Site 是什么类型?
-
Site 是一个模型实体,与 Posts 有关系,一个 Site 有许多 Posts
标签: c# .net entity-framework where-clause