我正在开发一个迁移应用程序,而且由于源模型之间的关系很大,我在OutOfMemory上遇到了问题。
更好地解释一个例子:
继续这样。
然后问题是,当您尝试获取所有信息并执行所有过程时,应用程序将抛出OutOfMemory异常。
我想知道我是否可以避免某种关系,或者如果不可能避免所有关系。 (编程)
提前致谢
答案 0 :(得分:2)
您正在搜索禁用延迟加载。
延迟加载意味着当您第一次访问查询中的属性时,将自动且透明地加载实体。
使用EDMX,您可以禁用它编辑其属性(.edmx文件上的F4)。
首先使用Code,您可以使用以下行:
dbContext.Configuration.LazyLoadingEnabled = false;
现在您已将其停用,您必须在查询中包含您需要的关系:
dbContext.MyEntity.Include(p=> p.MyRelationProperty)
.Include(p=> p.MyOtherRelationProperty)
[...]
.ToList();
OR
dbContext.MyEntity.Include("MyRelationProperty")
.Include("MyRelationProperty.MySubRelationProperty")
.Include("MyOtherRelationProperty")
[...]
.ToList();