2

我希望在创建任何实体时运行一些代码。一直在 DbContext 中寻找要覆盖的东西,但很难找到任何有用的东西。

多解释一下......我有几个模型,当我使用其中一个模型返回实体中的数据时,我希望能够在实体返回到调用方法之前对它做一些事情。我想每个模型最多定义一次这个代码,我希望它发生在所有实体上。

有EF专家吗?

谢谢

4

1 回答 1

7

DbContext不提供这样的机制,但你可以使用这个:

ObjectContext objectContext = ((IObjectContextAdapter)dbContext).ObjectContext;
objectContext.ObjectMaterialized += (sender,e) => {
    var yourEntity = e.Entity as YourEntityType;
    if (yourEntity != null) {
        // Do something
    }
};
于 2012-12-03T10:43:21.183 回答