Dynamics CRM中保存实体的变化 - 获取错误(Dynamics CRM saving En

2019-09-16 14:58发布

我真的抓我的头与此有关。 我试图使用动态CRM SDK更新帐户记录。 不管我怎么努力,它的失败。 开始。

Account sampleAccount = CrmAccount.GetAccountsBySubmissionCode(crmService, "ERZZUP").Single<Account>();
sampleAccount.Name = "AMC Edited";
crmService.Update(sampleAccount);

给出了错误:EntityState必须设置为null,创建(在创建消息)或更改(更新消息)

XrmServiceContext ctx = new XrmServiceContext(crmService);
Account sampleAccount = CrmAccount.GetAccountsBySubmissionCode(crmService, "ERZZUP").Single<Account>();
sampleAccount.Name = "AMC Edited";
ctx.UpdateObject(sampleAccount);
ctx.SaveChanges();

给出了错误: 上下文当前没有跟踪“帐户”实体。

XrmServiceContext ctx = new XrmServiceContext(crmService);
Account sampleAccount = CrmAccount.GetAccountsBySubmissionCode(crmService, "ERZZUP").Single<Account>();
sampleAccount.Name = "AMC Edited";
ctx.Attach(sampleAccount);
ctx.UpdateObject(sampleAccount);
ctx.SaveChanges();

给人的错误:“帐户”实体已经连接到上下文。

作为参考,1。帐户目的是通过早期绑定代码生成工具2. crmService是IOrganizationService连接对象3 GetAccounts ...执行LINQ查询的SDK创建并返回一个IEnumerable

请帮忙。 谢谢,克里斯。

Answer 1:

请参阅http://msdn.microsoft.com/en-us/library/gg695783.aspx ,特别是“多个数据上下文”的一部分。 看来你使用多个上下文来跟踪的实体。 该CrmAccount.GetAccountsBySubmissionCode方法只是隐藏了您的意见。

使内确保CrmAccount.GetAccountsBySubmissionCode方法将在返回之前,将上下文/服务IEnumerable<Account> ,或请确保您使用相同的上下文/服务Update



文章来源: Dynamics CRM saving Entity Changes - Getting Errors