使用Entity Framework Extensions批量方法时的上次修改的属性

时间:2018-02-13 20:52:32

标签: entity-framework entity-framework-6 entity-framework-extensions

我正在尝试使用EFE进行大型数据同步操作,因为它涉及大量插入或大量更新,我已经使用了BulkMerge方法。

我们过去的方法包括将所有内容推入一个巨大的复杂数据图,然后在我们的上下文中调用SaveChanges。我们通过覆盖我们的上下文的SaveChanges方法来处理" Last Modified" -type属性,类似于另一个问题中的最高投票(未接受)答案:

Entity Framework/SQL2008 - How to Automatically Update LastModified fields for Entities?

但是,EFE的批量操作不使用SaveChanges,所以现在这些属性保持为空。有没有办法在通过EFE保存而不必诉诸数据库触发器时继续填写这些属性?也许类似于BulkOperationExecuting事件,可以让你检查正在操作的实体类型并相应地运行一些代码?

1 个答案:

答案 0 :(得分:0)

由于您使用BulkMerge,为什么不简单地创建一个首先设置审计字段的扩展方法?

context.SetAuditField(list)
context.BulkMerge(list)

您还可以设置一些全局事件。这可能更符合您的要求

EntityFrameworkManager.PreBulkMerge = (context, entities) =>
{
    // ...code...
};