EF CTP 5.我有一个单一的实例,我想获得未经批准的实体。我似乎找不到办法做到这一点。我不想一起禁用代理创建,只需要它为这一个查询。有人可以帮忙吗?
这是一个简单的例子:
var myEntity = DbContext.Entities.Find(1);
var unproxy = myEntity...?
答案 0 :(得分:3)
我认为唯一的可能性是创建DbContext
的新实例并关闭代理创建以执行此查询。原因是DynamicProxy是在运行时创建的类型,它源自您的原始实体类型并添加了跟踪和延迟加载功能。一旦以这种方式创建代理,就无法剥离代理。试试这个:
using (var context = new MyDbContext(connectionString))
{
((IObjectContextAdapter)context).ObjectContext.ContextOptions.ProxyCreationEnabled = false;
var myEntity = context.Entities.Find(1);
}