处理创建POCO的实体框架

use*_*502 9 events entity-framework poco

我想看看是否有办法挂钩实体框架上下文,所以我知道它一完成创建一个POCO对象.

我可以使用任何属性,例如[OnDeserializing]吗?目的是在完成上下文后立即在对象上设置一些值,从数据库提取创建它.

非常感谢.

ano*_*non 12

挂钩到ObjectContext触发的ObjectMaterialized事件.在CTP5中,您需要在DbContext的构造函数中强制转换DbContext:

((IObjectContextAdapter)this).ObjectContext.ObjectMaterialized += 
    this.ObjectContext_OnObjectMaterialized;
Run Code Online (Sandbox Code Playgroud)

如果您不使用Code First,则无需强制转换.然后实现你的功能ObjectContext_OnObjectMaterialized(object sender, ObjectMaterializedEventArgs e).通过EventArgs,您将能够访问刚刚实现的对象.