Entity framework 使用自己的插入、更新和删除功能时,EF有什么不同?
我正在研究向数据库中添加历史记录表。最简单的方法是拦截EF发出的所有Insert、Update和Delete调用,并将其添加到合并中,该合并还将向历史记录表中插入历史记录行 现在我所有的实体都让EF知道如何进行插入、更新和删除 如果我去添加存储过程(而不是EF生成的东西),EF在业务层的功能是否仍然相同Entity framework 使用自己的插入、更新和删除功能时,EF有什么不同?,entity-framework,entity-framework-4,Entity Framework,Entity Framework 4,我正在研究向数据库中添加历史记录表。最简单的方法是拦截EF发出的所有Insert、Update和Delete调用,并将其添加到合并中,该合并还将向历史记录表中插入历史记录行 现在我所有的实体都让EF知道如何进行插入、更新和删除 如果我去添加存储过程(而不是EF生成的东西),EF在业务层的功能是否仍然相同 或者它改变了我与实体的合作方式?如果是这样,怎么办?一切都是一样的,它是透明的 存储过程需要返回受影响的行,以便EF知道更新是否成功。此外,如果执行更新并需要将任何属性映射回实体(例如时间戳),
或者它改变了我与实体的合作方式?如果是这样,怎么办?一切都是一样的,它是透明的 存储过程需要返回受影响的行,以便EF知道更新是否成功。此外,如果执行更新并需要将任何属性映射回实体(例如时间戳),则必须在存储过程中选择它们,然后在EF设计器中映射回它们(因为您只能有一个输出参数,而这应该是受影响的行)
你可以考虑使用DB上的触发器来解决你的问题吗?
< P>在存储过程中这样做意味着你将编写所有的插入、更新和删除自己。这就像扔掉30%的功能集(和50%的生产率)。在应用程序中创建审核记录,并通过EF将其与主记录一起保存。谢谢您的回答。触发器在我的公司有一个非常负面的污名。由于我仍在开发中,我认为sproc解决方案会很好地工作。