我有以下查询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;
有没有其他方式可以询问此查询?也许拆分或什么?
答案 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;
(未经测试,因为我没有您的数据库/型号)