【问题标题】:Manipulating Entity Framework entities automatically to add extra information自动操作实体框架实体以添加额外信息
【发布时间】:2012-12-03 10:17:53
【问题描述】:

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

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

有 EF 专家吗?

谢谢

【问题讨论】:

    标签: c# entity-framework poco dbcontext


    【解决方案1】:

    DbContext 不提供这种机制,但您可以使用:

    ObjectContext objectContext = ((IObjectContextAdapter)dbContext).ObjectContext;
    objectContext.ObjectMaterialized += (sender,e) => {
        var yourEntity = e.Entity as YourEntityType;
        if (yourEntity != null) {
            // Do something
        }
    };
    

    【讨论】:

    • 哪里是放置此代码的最佳位置?在带有 ObjectContext 的 EF5 中,我们可以通过 OnContextCreated 进行挂钩,但我在带有 DbContext 的 EF6 中找不到合适的等价物。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-25
    • 2023-04-01
    • 1970-01-01
    • 2021-06-22
    • 2021-08-13
    • 1970-01-01
    • 2016-11-09
    相关资源
    最近更新 更多