我是否应该费心去检查对象是否正确保存?
if (objectContext.SaveChanges() > 0)
如果没有,它应该抛出异常,对吗?
答案 0 :(得分:2)
根据msdn documentation,SaveChanges()方法将返回添加,修改或删除的记录数。它可能引发的异常是InvalidOperationException或OptimisticConcurrencyException。
我认为检查记录数有一定价值。如果你发出一个试图修改或删除的有效语句,但没有任何东西可以修改或删除,它只会返回0,即使没有异常,因为技术上没有发生任何错误。
答案 1 :(得分:2)
根据MSDN:
SaveChanges在一个 交易。 SaveChanges将滚动 回到那个交易并抛出一个 异常,如果有任何脏 ObjectStateEntry对象不能 持续存在。
所以你想要尝试/ catch来代替异常。如果您想知道受影响的记录的数量,那么在try块中您将拥有int recordsAffected = objectContext.SaveChanges();
查看MSDN链接以获取示例。