dynamics-crm - 锁定上下文返回的记录?或者也许改变我的方法

标签 dynamics-crm dynamics-crm-2011

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

这是故事。我们目前有少量应用程序与我们的 CRM 集成。其中一些打开 XrmServiceContext 并返回几千条记录以执行更新。这些脚本在整个过程中调用 SaveChanges,但在接近尾声时仍有帐户将在上下文返回它们后几分钟保存。如果用户在此期间更新记录,他们的更改将被脚本覆盖。

是否有一种方法可以锁定记录,直到上下文将更新保存回来,或者我应该采用更好的方法吗?

工具包

最佳答案

在我看来,这类数据库交易问题是CRM目前最缺乏的。无法确保其他人不会篡改您的数据,在 CRM 中,这始终是最后一个获胜的世界。

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

如果您正在处理一个您不能容忍最后一个获胜的心态的系统,那么您最好不要使用 CRM。

更新 1

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

关于dynamics-crm - 锁定上下文返回的记录?或者也许改变我的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11529360/

相关文章:

c# - MS Dynamics 365 - 生成自定义序列号,确保唯一性

javascript - 单击 MS CRM 2011 后禁用功能区按钮?

azure - Dynamics 365(通过 Azure 数据工厂)到 Azure SQL Server 之间的数据传输存在时区差异

dynamics-crm-2011 - Dynamics CRM 2011 : Using CrmSvcUtil. exe 与 IFD 基于声明的身份验证

javascript - 如何在 CRM 2011 中使用 Javascript 和 oData 获取 PartyList 字段的值

plugins - 服务器端Fetchxml返回不同的结果

C# 客户关系管理 m :n relationship

c# - CRM FetchXml,如何动态添加与相关实体名称匹配的快速搜索过滤器?

c# - 为什么 string.Equals 默认情况下不区分大小写?