entity-frameworkentity-framework-ctp5

entity framework ctp5 get unproxied entity


EF CTP 5. I have a single instance where I would like to get the unproxied entity. I can't seem to find a way to do this. I don't want to disable proxy creation all together, just need it for this one query. Can anyone help?

Here is a simple example:

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

Solution

  • I believe the only possibility is to create new instance of DbContext and turn proxy creation off just to execute this query. The reason is that DynamicProxy is type created in runtime which derives from your original entity type and adds tracking and lazy loading functionality. You can't strip the proxy away once you created it this way. Try this:

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