我有一個簡單的數據庫具有站點,並且每個站點都有一堆郵件。實體框架不發送Where子句作爲WHERE子句SQL Server
我試圖得到一定的站點(我有一個變量,名爲網站已經是EF帶來的一個實例)
第一個明顯的事情是所有「公共」的帖子:
var posts = from post in site.Posts
where post.Public == true
orderby post.PublicationTime descending
select post;
這給我帶來了我想要的東西,但看着SQL Server Profiler,WHERE只是過濾Public字段,而不是過濾網站。實際上,在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;
相同的結果。
我在這裏做一些根本上愚蠢的事情嗎?
Entity Framework總是在客戶端過濾嗎?
謝謝!
Daniel
你能後的網站/帖子班? – 2010-02-11 02:52:15
我假設Public是一個布爾值,但是Site是什麼類型? – 2010-02-11 02:53:51
網站是一個模型實體,與帖子的關係,其中一個網站有很多帖子 – 2010-02-11 02:56:48