我们当前的系统默认使用Lazyloading(这是我要禁用的东西,但它现在无法完成)
对于这个基本查询,我想返回两个表,CustomerNote和Note。
这是我的查询
using (var newContext = new Entities(true))
{
newContext.Configuration.LazyLoadingEnabled = false;
var result = from customerNotes in newContext.CustomerNotes.Include(d=>d.Note)
join note in newContext.Notes
on customerNotes.NoteId equals note.Id
where customerNotes.CustomerId == customerId
select customerNotes;
return result.ToList();
}
但我的结果只包含CustomerNote表中的数据
链接的实体Customer和Note都是null,我在这里做错了什么?
我使用了以下内容,这比我在别处找到的内容简单得多
Context.Configuration.LazyLoadingEnabled = false;
var result = Context.CustomerNotes.Where<CustomerNote>(d => d.CustomerId == customerId)
.Include(d=>d.Note)
.Include(d=>d.Note.User);
return result.ToList();
这将从Notes返回我的CustomerNote表,相关Notes和相关用户。
答案 0 :(得分:1)
那是你想要实现的叫做渴望加载。
var customerNotes = newContext.CustomerNotes.Include(t=> t.Node).ToList();
这应该有用,我真的不懂关键字语法。 如果上面的代码不起作用,请尝试:
var customerNotes = newContext.CustomerNotes.Include(t=> t.Node).Select(t=> new {
Node = t.Node,
Item = t
}).ToList();