实体框架:为什么“虚拟”将默认为延迟加载?

时间:2016-10-11 09:12:50

标签: c# entity-framework

首先使用EF代码“Association properties that are marked as “virtual” will by default be lazy-loaded”。

是按照惯例还是背后有一个逻辑?

1 个答案:

答案 0 :(得分:1)

通过将属性标记为虚拟允许EF在派生代理类中覆盖它,它会包裹您的对象。这允许EF在重写属性中添加加载钩子,并启用延迟加载行为。

Microsoft文档:https://msdn.microsoft.com/en-us/data/jj574232.aspx

在可能的情况下,默认的Entity Framework行为是延迟加载相关对象。这可以通过简单地关闭上下文的延迟加载或单个实体来禁用(参见上面的链接):

例如,要禁用上下文的延迟加载:

this.Configuration.LazyLoadingEnabled = false; 
相关问题