加入并包含在实体框架中

时间:2009-01-06 14:57:41

标签: c# .net sql linq entity-framework

我有以下查询linq到实体。问题是它似乎没有加载“标签”关系,即使我已经包含了它的东西。如果我不加入标签,它可以正常工作,但我需要这样做。

            var items = from i in db.Items.Include("Tags")
                        from t in i.Tags
                        where t.Text == text
                        orderby i.CreatedDate descending
                        select i;

有没有其他方式可以询问此查询?也许拆分或什么?

1 个答案:

答案 0 :(得分:50)

嗯,Include与哪里相矛盾。包括说“加载所有标签”。在哪里说“加载一些标签”。当查询与Include之间存在矛盾时,查询将始终获胜。

要从任意项目返回所有标记至少一个标记== text:

        var items = from i in db.Items.Include("Tags")
                    where i.Tags.Any(t => t.Text == text)
                    orderby i.CreatedDate descending
                    select i;

(未经测试,因为我没有您的数据库/型号)

这是a really good, free book on LINQ