我想知道是否有办法挂钩实体框架上下文,所以我知道它一旦完成创建POCO对象。
我可以使用任何属性,例如[OnDeserializing]吗?目的是在完成上下文后立即在对象上设置一些值,从数据库提取创建它。
非常感谢。
答案 0 :(得分:12)
挂钩到ObjectContext触发的ObjectMaterialized事件。在CTP5中,您需要在DbContext的构造函数中强制转换DbContext:
((IObjectContextAdapter)this).ObjectContext.ObjectMaterialized +=
this.ObjectContext_OnObjectMaterialized;
如果您不使用Code First,则无需强制转换。然后实现您的函数ObjectContext_OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e)
。通过EventArgs,您将能够访问刚刚实现的对象。