实体框架ctp5获取未经代理的实体

时间:2011-02-15 17:43:53

标签: entity-framework entity-framework-ctp5

EF CTP 5.我有一个单一的实例,我想获得未经批准的实体。我似乎找不到办法做到这一点。我不想一起禁用代理创建,只需要它为这一个查询。有人可以帮忙吗?

这是一个简单的例子:

var myEntity = DbContext.Entities.Find(1);
var unproxy = myEntity...?

1 个答案:

答案 0 :(得分:3)

我认为唯一的可能性是创建DbContext的新实例并关闭代理创建以执行此查询。原因是DynamicProxy是在运行时创建的类型,它源自您的原始实体类型并添加了跟踪和延迟加载功能。一旦以这种方式创建代理,就无法剥离代理。试试这个:

using (var context = new MyDbContext(connectionString))
{
  ((IObjectContextAdapter)context).ObjectContext.ContextOptions.ProxyCreationEnabled = false;
  var myEntity = context.Entities.Find(1);
}