懒惰加载在bool中

时间:2017-01-24 19:28:40

标签: c# lazy-loading

我有一个代码,必须遍历数据库中的每个项目,然后解密它们撤回的内容。我被告知延迟加载是一个很好的方法,但我甚至不知道它是什么。我读了它,但我还不清楚。以下是带来我需要的所有项目的代码。我如何延迟加载它以免它对系统造成错误?

var potentialNumbers = _db.Owners.Where(x => x.UNQ4.Equals(submittedUNQ.Substring(submittedUNQ.Length - 4))).ToList().Select(o => o.UNQ).ToList();

1 个答案:

答案 0 :(得分:0)

默认情况下,实体框架中的延迟加载处于启用状态。你不能强迫某些东西被懒散地加载#39;。你所能做的只是关闭延迟加载(顺便说一下,它实际上并不是真正的加载,而是“没有加载”#39;)。所以答案是你不能。实际上,正如评论所指出的,如果Owners类具有导航属性,例如,

public class Owners{
    public string UNQ4 {get;set;}
    public virtual OtherClass NavigationProperty {get;set;}
}

然后,当您执行NavigationProperty等查询时,null属性的值最初为var owners = _db.Owners.First()。之后,当您的程序调用{​​{1}}访问其owners(如NavigationProperty)时,只有这样才能访问数据库以获取相关的owners.NavigationProperty.Name数据

延迟加载有效无法加载导航属性,直到/如果需要。好参考:https://msdn.microsoft.com/en-us/library/jj574232(v=vs.113).aspx

相关问题