如何在Entity Framework中创建模型之前向SavingChanges事件添加处理程序?

时间:2018-04-13 10:44:57

标签: c# .net entity-framework dbcontext invalidoperationexception

我想在OnModelCreating类方法中执行两个操作 继承自DbContext类:一个使用DbModelBuilder实例,另一个使用上下文将处理程序添加到SavingChanges事件。应始终将它们召集在一起,以避免在没有另一个的情况下调用它们。

问题是在创建模型之前不能使用上下文,所以我得到InvalidOperationException例外。

我的问题有解决办法吗?

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    TwoOperations(modelBuilder);
}

private void TwoOperations(DbModelBuilder modelBuilder)
{
    FirstOperation(modelBuilder);
    SecondOperation();
}

private void FirstOperation(DbModelBuilder modelBuilder)
{
    // Do something with modelBuilder...
}

private void SecondOperation()
{
    (this as IObjectContextAdapter).ObjectContext.SavingChanges += (sender, args) =>
    {
        // Do something...
    }
}

0 个答案:

没有答案