Linq to Entities查询多对多关系

时间:2011-07-28 01:12:51

标签: entity-framework linq-to-entities

我使用Entity Framework 4.1有一个标签和一个具有多对多关系的文章对象。 我只是想检索一个带有标签的文章列表。但是,以下代码失败:

var db = new ArticleContext();
        var tag = db.Tags.Find(tagId);
        var articles= from article in db.Articles
                       where article.Tags.Contains(tag)
                       select article; 

错误是“在此上下文中仅支持原始类型(例如Int32,String和Guid')。” 我知道这是EF(http://msdn.microsoft.com/en-us/library/bb896317.aspx#RefNonScalarClosures)的已知问题,但最佳解决方法是什么?

1 个答案:

答案 0 :(得分:2)

试试这个

var articles= from article in db.Articles
               where article.Tags.Any(tag => tag.Id == tagId)
               select article;