我想知道是否可以覆盖ObjectContext.SaveChanges()方法并编写我们自己的sql逻辑来保存对对象上下文中的实体所做的更改,而不是依靠Entity Framework将这些更改保存在数据库中
答案 0 :(得分:2)
一般来说,如果你覆盖SaveChanges
并且不打电话给base.SaveChanges
,你可以做任何你想要的事情,但是你将失去EF为你做的所有麻烦。这意味着您必须手动浏览元数据并将实体映射到SQL表和列。就像写一半ORM一样。
如果在持久化实体时只需要一些小的自定义逻辑,则可以将导入的存储过程映射到实体设计器中的“插入”,“更新”和“删除”操作。
答案 1 :(得分:1)
在EF4中SaveChanges(SaveOptions)
是虚拟的。您可以覆盖此方法。 MSDN
答案 2 :(得分:0)
@Ladislav是正确的,存储过程是一种方法(+1)。
另一种方法是写一个wrapper provider。