【问题标题】:Join and Include in Entity Framework加入并包含在实体框架中
【发布时间】:2010-09-29 19:58:48
【问题描述】:

我有以下关于 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;

还有其他方法可以询问这个问题吗?也许分开或其他什么?

【问题讨论】:

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


    【解决方案1】:

    嗯,Include 与 where 相矛盾。包括说,“加载所有标签。” where 表示“加载一些标签”。当查询与包含矛盾时,查询永远胜出。

    要从任何项返回所有标签,至少一个标签==文本:

            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

    【讨论】:

    • 关于如何以其他方式编写它的任何建议,以便我可以获取标签并对其进行条件处理。在常规 SQL 中会很简单。
    • 你想包含来自任何项目的所有标签,至少有一个标签 == 文本?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    相关资源
    最近更新 更多