【发布时间】:2012-12-03 10:17:53
【问题描述】:
我希望在创建任何实体时运行一些代码。一直在 DbContext 中寻找要覆盖的东西,但很难找到有用的东西。
再解释一下...我有几个模型,当我使用其中一个模型返回实体中的数据时,我希望能够在实体返回到调用方法之前对实体做一些事情.我想每个模型最多定义一次此代码,并且我希望它发生在所有实体上。
有 EF 专家吗?
谢谢
【问题讨论】:
标签: c# entity-framework poco dbcontext
我希望在创建任何实体时运行一些代码。一直在 DbContext 中寻找要覆盖的东西,但很难找到有用的东西。
再解释一下...我有几个模型,当我使用其中一个模型返回实体中的数据时,我希望能够在实体返回到调用方法之前对实体做一些事情.我想每个模型最多定义一次此代码,并且我希望它发生在所有实体上。
有 EF 专家吗?
谢谢
【问题讨论】:
标签: c# entity-framework poco dbcontext
DbContext 不提供这种机制,但您可以使用:
ObjectContext objectContext = ((IObjectContextAdapter)dbContext).ObjectContext;
objectContext.ObjectMaterialized += (sender,e) => {
var yourEntity = e.Entity as YourEntityType;
if (yourEntity != null) {
// Do something
}
};
【讨论】: