在Entity框架中全局禁用动态代理 [英] disable dynamic proxy in Entity framework globally
问题描述
请如何禁用在Entity Framework 5中创建的所有实体的动态代理。
目前,我正在设置这个espEntities.Configuration.ProxyCreationEnabled = false;在dbcontext的每一个实例中,有一种方法可以为当前和未来的模型做一次任务。
Tahnks
方法1
如果您有EDMX模型,被创建使用它,并在 OnContextCreated
中,您可以禁用 ProxyCreationEnabled
public partial class MyModelContainer
{
public void OnContextCreated()
{
this.Configuration.ContextOptions.ProxyCreationEnabled = false;
}
}
方法2 p>
编辑model.tt文件。找到包含这样的行:
partial class<#= code.Escape(container)#> :DbContext
并添加
this.Configuration.ProxyCreationEnabled = false;
方法3
如果您不使用EDMX文件,请在上下文构造函数中执行(假定您的上下文称为EspEntities)
public class EspEntities:DbContext
{
public EspEntities()
{
Configuration.ProxyCreationEnabled = false;
}
}
Please how can I disable dynamic proxies for all entities created in Entity Framework 5.
Currently, I am setting this espEntities.Configuration.ProxyCreationEnabled = false; in every instance of a dbcontext is there a way I can do this for current and future models as a one time task.
Tahnks
Method 1
If you have an EDMX model, a partial class is created. Use that and in the OnContextCreated
you can disable ProxyCreationEnabled
public partial class MyModelContainer
{
public void OnContextCreated()
{
this.Configuration.ContextOptions.ProxyCreationEnabled = false;
}
}
Method 2
Edit the model.tt file. Find the line containing something like this:
partial class <#=code.Escape(container)#> : DbContext
And add in
this.Configuration.ProxyCreationEnabled = false;
Method 3
If you are not using an EDMX file, do it in your context constructor: (assuming your context is called EspEntities)
public class EspEntities : DbContext
{
public EspEntities()
{
Configuration.ProxyCreationEnabled = false;
}
}
这篇关于在Entity框架中全局禁用动态代理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!