【发布时间】:2018-03-21 06:32:38
【问题描述】:
请问如何禁用在 Entity Framework 5 中创建的所有实体的动态代理。
目前,我在 DbContext 的每个实例中设置此 espEntities.Configuration.ProxyCreationEnabled = false; 是否有一种方法可以将当前和未来的模型作为一次性任务执行此操作。
谢谢
【问题讨论】:
标签: c# entity-framework
请问如何禁用在 Entity Framework 5 中创建的所有实体的动态代理。
目前,我在 DbContext 的每个实例中设置此 espEntities.Configuration.ProxyCreationEnabled = false; 是否有一种方法可以将当前和未来的模型作为一次性任务执行此操作。
谢谢
【问题讨论】:
标签: c# entity-framework
方法一
如果您有 EDMX 模型,则会创建一个分部类。使用它并在OnContextCreated 中禁用ProxyCreationEnabled
public partial class MyModelContainer
{
public void OnContextCreated()
{
this.Configuration.ContextOptions.ProxyCreationEnabled = false;
}
}
方法二
编辑 model.tt 文件。找到包含以下内容的行:
partial class <#=code.Escape(container)#> : DbContext
并添加
this.Configuration.ProxyCreationEnabled = false;
方法3
如果您不使用 EDMX 文件,请在您的上下文构造函数中执行此操作:(假设您的上下文称为 EspEntities)
public class EspEntities : DbContext
{
public EspEntities()
{
Configuration.ProxyCreationEnabled = false;
}
}
【讨论】: