3

EF CTP 5. 我有一个实例,我想在其中获取未代理的实体。我似乎找不到办法做到这一点。我不想一起禁用代理创建,只需要它来进行这个查询。任何人都可以帮忙吗?

这是一个简单的例子:

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

1 回答 1

3

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

using (var context = new MyDbContext(connectionString))
{
  ((IObjectContextAdapter)context).ObjectContext.ContextOptions.ProxyCreationEnabled = false;
  var myEntity = context.Entities.Find(1);
}
于 2011-02-16T10:44:44.207 回答