2012-03-26 40 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)));