如果我有 3 张表:
表1、表2、表3
并且Table3有一个针对Table2的FK,而Table2也有一个针对Table1的FK
然后我像这样加载我的对象:
using(Entities entities = new Entities()
{
Table1 table = entities.Table1.FirstOrDefault();
table.Table2.Load();
}
由于延迟加载已关闭,我如何才能将表 3 急切地加载到表 2 中。
我知道我可以在 FirstOrDefault 语句中使用 Include,但它会生成太大的连接。
ANSWER
using(Entities entities = new Entities())
{
Table1 table = entities.Table1.FirstOrDefault();
var table2 = table.Table2.CreateSourceQuery().Include("Table3")
.Execute(MergeOption.AppendOnly);
table.Table2.Attach(table2);
}
由于延迟加载已关闭,我如何才能将表 3 急切地加载到表 2 中。
你可以试试:
using(Entities entities = new Entities())
{
Table1 table = entities.Table1.FirstOrDefault();
table.Table2.CreateSourceQuery().Include("Table3")
.Execute(MergeOption.AppendOnly);
}
我假设您使用的实体源自EntityObject
,不是 POCO,即table.Table2
is an EntityCollection<T>
or EntityReference<T>
。我不能 100% 确定上面的代码是否能按预期工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)