在EF中,从SavingChanges事件中调用SaveChanges?

时间:2012-09-13 06:22:54

标签: c# entity-framework

我在MVC 3应用程序中使用EF 4.1。

我的目标是将所有更改保存在另一个数据库中以进行日志记录。

我已为SavingChanges实施了EntityContext事件。在那种情况下,我通过GetObjectStateEntries()提取更改,效果很好。

然后,我有另一个EntityContext,它针对不同的模型和数据库,用于日志记录。我创建了Context,创建了日志实体,并将它们添加到日志记录上下文中。一切似乎都很好。然后,当我在日志记录上下文中调用SaveChanges()时,会发生异常,表示我无法插入,因为Id为空(我确信它不是)。

有谁知道这是不可能实现的?我错过了一些重要的细节吗?

1 个答案:

答案 0 :(得分:0)

案例是我在我的日志记录模型中使用了“Model first”,在所有其他模型中使用了“DB first”。这导致EF配置期望照顾Id(GUID)本身的错误,但我试图自己提供一个。我从模型中删除了实体,而是从数据库导入它们,这解决了问题!

感谢@Eranga让我朝着正确的方向前进。