在哪里订阅使用EF6的ObjectMaterialized?

时间:2014-02-09 20:27:39

标签: c# .net entity-framework dbcontext

我正在尝试将我的上下文订阅到this之后的OnjectMaterialized事件,如下所示:

((IObjectContextAdapter)this).ObjectContext
                             .ObjectMaterialized += ObjectContext_OnObjectMaterialized;

但我使用的是EF6,该帖子中提到的OnContextCreated方法在此版本中不存在。

我尝试在上下文构造函数中订阅物化事件,但是,如果数据库被删除(我们经常在集成测试期间执行),则不再订阅该事件。我们尝试在Database.Delete()之后再次订阅,但它也不起作用。

所以我的问题是,我应该在哪里使用Entity Framework 6正确订阅ObjectMaterialized事件?

2 个答案:

答案 0 :(得分:1)

您可以简单地对上下文进行子类化并在构造函数中订阅该事件吗? (我已经完成了这个,它适用于我的场景.YMMV。)

答案 1 :(得分:0)

ModelContext modelContext = new ModelContext(); //Inherit DbContext
IObjectContextAdapter contextAdapter = modelContext;
ObjectContext objectContext = contextAdapter.ObjectContext;