我有以下查询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;
有没有其他方式来询问此查询?也许拆分或什么?
那么,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;
(未经测试,因为我没有您的数据库/型号)
这是一本关于LINQ的非常好的免费书.