锁定上下文返回的记录?或者也许改变我的做法

Chr*_*ead 3 dynamics-crm dynamics-crm-2011

我不确定我是否需要一种方法来锁定上下文返回的记录,或者只是需要一种新的方法.

这是故事.我们目前有少量应用程序与我们的CRM集成.其中一些打开XrmServiceContext并返回几千条记录来执行更新.这些脚本在此过程中调用了SaveChanges,但是在上下文返回后几分钟内仍然会有一些帐户.如果用户在此期间更新记录,则脚本将覆盖其更改.

有没有办法锁定记录,直到上下文保存更新或是否有更好的方法我应该采取?

套件

Dar*_*ryl 5

在我看来,这种类型的数据库事务问题是CRM目前最缺乏的.没有办法确保其他人不会对您的数据产生影响,它始终是CRM中最后一个赢家的世界.

话虽如此,我的建议是只更新你关心的属性.如果要返回实体的所有列,则在更新该实体时,即使您只更新了其中一个实体,也可能会更新该实体的所有属性.

如果你正在处理一个系统,你是不能容忍最后一次胜利的心态,那么你最好不要使用CRM.

更新1

CRM 2015 SP1及更高版本支持乐观更新.这允许使用版本号来确保自您检索以来没有人更新过记录.