查看人们编写的示例,我发现很多人使用 SaveChanges 而不是使用 SaveChangesWithRetries。我认为 SaveChangesWithRetries 是最好的选择,那么仅使用 SaveChanges 有什么优势吗?另外,如果我执行 SaveChangesWithRetries,是否还需要配置其他任何内容,或者我应该使用默认值?
_LogEntryServiceContext.MergeOption = MergeOption.PreserveChanges; _LogEntryServiceContext.AttachTo("LogEntry", itemToDelete, "*"); _LogEntryServiceContext.DeleteObject(itemToDelete); _LogEntryServiceContext.SaveChanges(); _LogEntryServiceContext.Detach(itemToDelete);
谢谢
真理子
最佳答案
一般来说,我总是使用 SaveChangesWithRetries - 但我仍然需要添加自己的错误处理。
无论您选择哪种方法,这两种方法都需要您处理非常罕见的问题:
- 如果您要保存多项更改,那么您需要制定一个策略,以应对一半更改失败的情况
- 在极少数情况下,保存可能会因连接/可用性问题而失败
- 在极少数情况下,由于连接问题,保存可能会失败,但实际上可能已成功 - 在这种情况下,重试似乎会失败。
好消息是(根据我的经验)失败很少见。然而,这对于“事务关键”类型数据来说可不是什么好消息!
关于Azure SaveChanges 与 SaveChangesWithRetries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5360371/