加入并包含在实体框架中
Posted
技术标签:
【中文标题】加入并包含在实体框架中【英文标题】: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;
还有其他方法可以询问这个问题吗?也许分开或其他什么?
【问题讨论】:
【参考方案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 中会很简单。 你想包含来自任何项目的所有标签,至少有一个标签 == 文本?以上是关于加入并包含在实体框架中的主要内容,如果未能解决你的问题,请参考以下文章