2012-03-26 56 views
4

我有了這個非常基本的表結構:條件包括在LINQ to實體

帖子

PostXTags

PostTags

有帖子,PostXTags之間的1-N關係和PostTags之間,PostXTags

我需要獲取所有帖子及其標籤。

在PostTags中有一個稱爲類型的字段,我想對它進行過濾。包含的每個條件都會遇到此錯誤:

包含路徑表達式必須引用在該類型上定義的導航屬性。對於參考導航屬性使用虛線路徑,對集合導航屬性使用Select運算符。 參數名稱:路徑

Public IQueryable<Post> GetPosts() 
    { 
     return from p in _db.Posts 
       select p; 
    } 

    var posts = GetPosts().Include(p => p.PostXTags.Select(pxt => pxt.PostTag).Where(pt=>pt.Type == 2)).ToList(); 
+0

到底哪裏出問題了?例外?錯誤?不正確的結果? – 2012-03-26 07:29:34

回答

6

我想你想實現什麼

var posts = _db.Posts.Include("PostXTags.PostTag"). 
    Where(p => p.PostXTags.Any(pxt => pxt.PostTags.Any(pt => pt.Type == 2)));