2011-03-19 56 views
2

看看人们编码的例子,我看到很多人在使用SaveChanges而不是使用SaveChangesWithRetries。我认为SaveChangesWithRetries是最好的选择,在使用SaveChanges方面有什么优势吗?另外如果我做了SaveChangesWithRetries,还有什么我需要配置,或者我应该去默认?Azure SaveChanges vs SaveChangesWithRetries

_LogEntryServiceContext.MergeOption = MergeOption.PreserveChanges; _LogEntryServiceContext.AttachTo(“LogEntry”, itemToDelete,“*”); _LogEntryServiceContext.DeleteObject(itemToDelete); _LogEntryServiceContext.SaveChanges(); _LogEntryServiceContext.Detach(itemToDelete);

感谢,

圆子

回答

4

总的来说,我总是用SaveChangesWithRetries - 但我也还是要添加自己的错误处理。

无论哪个选择,两种方法都需要你来处理非常罕见的问题/问题:

    在您保存多个更改,那么你需要制定出当一半的改变失败的策略的情况下
  • 在某些极少数情况下,由于连接/可用性问题,保存可能会失败
  • 在某些罕见情况下,保存可能会因连接问题而失败,但实际上可能已成功 - 在此情况下,重试似乎失败。

好消息是,失败(以我的经验)是罕见的。然而,这对于“事务关键型”数据来说并不是好消息!