 <p>Today I found an event in the Entity Framework that seems to be what I am looking for. <a href="http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.objectmaterialized.aspx">ObjectContext.ObjectMaterialized Event</a>. Apparently, DbContext implements IObjectContextAdapter which in-turn exposes the ObjectContext. From there I can subscribe to the ObjectMaterialized event.</p> <blockquote> <p><em>MSDN Reads</em>: Occurs when a new entity object is created from data in the data source as part of a query or load operation.</p> </blockquote> <p>The following code demonstrates how I used the ObjectMaterialized event to solve my problem in which one of my preferences was to have a central point to place the WCF client access logic.</p> <pre><code>// seperate assembly - does not use Domain.Repositories assembly namespace Domain.Models { // the data contract [DataContract] public class ProductInventoryState { [DataMember] public int StockStatus { get; set; } [DataMember] public IEnumerable&lt;String&gt; SerialNumbers { get; set; } // etc.... } // the entity public class Product { public Guid Key { get; set; } public string ProductCode { get; set; } public ProductInventoryState InventoryState { get; set; } // etc.... } } // seperate assembly - uses Domain.Models assembly namespace Domain.Repositories { public class MainRepository : DbContext { public MainRepository() { ((IObjectContextAdapter)this).ObjectContext.ObjectMaterialized += ObjectContext_ObjectMaterialized; } protected void ObjectContext_ObjectMaterialized(object sender, ObjectMaterializedEventArgs e) { if (e.Entity == null) return; if (e.Entity is Product) { Product product = (Product)e.Entity; // retrieve ProductInventoryState from 3rd party SOAP API using (ThirdPartyInventorySystemClient client = new ThirdPartyInventorySystemClient()) { // use ProductCode to retrieve the data contract product.InventoryState = client.GetInventoryState(product.ProductCode); } } } } } </code></pre>