title: Customize entity materialization in Entity Framework 6
body: <p>Is there a way to materialize an instance of your own class that derives from the entity type specified in your model? Let's say I have a "ClassName" property in my model for a given entity and whenever EF materializes an instance of the entity, I want to create an instance of the specified ClassName instead (which is a sub-class of the entity of course).</p>
  
  <p>I know there is the ObjectMaterialized event on the ObjectContext but at this point the entity is already created.</p>
  
  <pre><code>var objectContext = ((IObjectContextAdapter)dbContext).ObjectContext;
  objectContext.ObjectMaterialized += OnObjectMaterialized;
  </code></pre>
  
  <p>I need a hook right before this to customize the object creation. You might ask why on earth would I need to do this. I have a large object model that changes constantly so I can't define all my classes in the EDMX. The properties that I store in the database can be abstracted to a couple classes at the top of the object model hierarchy. I intend to create entities for those using table-per-type inheritance. But if I could retrieve specific object instances directly when using EF that would be awesome.</p>
  
  <p>Thanks!</p>