我不确定我是需要一种方法来锁定上下文返回的记录,还是只需要一种新方法。
这是故事。我们目前有少量应用程序与我们的 CRM 集成。其中一些打开 XrmServiceContext 并返回几千条记录以执行更新。这些脚本在整个过程中调用 SaveChanges,但在接近尾声时仍有帐户将在上下文返回它们后几分钟保存。如果用户在此期间更新记录,他们的更改将被脚本覆盖。
是否有一种方法可以锁定记录,直到上下文将更新保存回来,或者我应该采用更好的方法吗?
工具包
最佳答案
在我看来,这类数据库交易问题是CRM目前最缺乏的。无法确保其他人不会篡改您的数据,在 CRM 中,这始终是最后一个获胜的世界。
话虽如此,我的建议是只更新您关心的属性。如果您要返回一个实体的所有列,那么当您更新该实体时,您可能会更新该实体的所有属性,即使您只更新了其中一个属性。
如果您正在处理一个您不能容忍最后一个获胜的心态的系统,那么您最好不要使用 CRM。
更新 1
CRM 2015 SP1 及更高版本支持乐观更新。这允许使用版本号来确保自您检索记录以来没有人更新过它。
关于dynamics-crm - 锁定上下文返回的记录?或者也许改变我的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11529360/