使用 Dynamics CRM 2011 SDK 和 C# 更新帐户

本文关键字:更新 SDK Dynamics CRM 2011 使用 | 更新日期: 2023-09-27 18:33:17

我正在使用Dynamics CRM 2011 C# SDK从我的本地DynamicsCRM 2011写入和读取数据。

我目前正在从 https://msdn.microsoft.com/en-us/library/gg695803%28v=crm.5%29.aspx 的这个基本示例开始

因此,创建新的帐户或联系人并将其写入动态似乎没有问题,其工作原理如下:

var companyTest = new Xrm.Account
{
  Name = "Company Test1",
  AccountNumber = "1",
  Address1_Country = "D",
  Address1_City = "M",
  Telephone1 = "12345678",
  EMailAddress1 = "oldmail@gg.com"
};
 xrm.AddObject(companyTest);
 xrm.SaveChanges();

现在我不完全了解如何更改我创建的帐户上的某些信息。

所以我试了这个:

var companyTest = new Xrm.Account
{
  Name = "Company Test1",
  AccountNumber = "1",
  Address1_Country = "D",
  Address1_City = "M",
  Telephone1 = "12345678",
  EMailAddress1 = "newmail@gg.com" // change the email for instance
};
xrm.UpdateObject(companyTest);
xrm.SaveChanges();

但是在执行此操作时,我收到以下错误:"System.InvalidOperationException"

如何正确执行此操作?

另外,如果有人能推荐一本关于DynamicsCRM SDK的书或视频课程,我将不胜感激。

使用 Dynamics CRM 2011 SDK 和 C# 更新帐户

在您的

示例中,您使用早期绑定和 XrmContext 来添加和修改帐户。

如果您已经在上下文中拥有该帐户(这意味着您在创建更新后立即执行更新),则只需更改 companyTest 中的值:

var companyTest = new Xrm.Account
{
  Name = "Company Test1",
  AccountNumber = "1",
  Address1_Country = "D",
  Address1_City = "M",
  Telephone1 = "12345678",
  EMailAddress1 = "oldmail@gg.com"
};
 xrm.AddObject(companyTest);
 xrm.SaveChanges();
companyTest.AccountNumber = "2";
xrm.UpdateObject(companyTest);
xrm.SaveChanges();

如果要更新尚未在上下文中的记录,则需要提供记录的 ID,如下所示:

Guid accountId = new Guid(""); // account id here
var companyTestUpdate = new Xrm.Account
{
  Id = accountId,
  AccountNumber = "2"
};
xrm.UpdateObject(companyTest);
xrm.SaveChanges();

如果你刚开始使用CRM SDK和CRUD操作,我建议使用后期绑定和IOrganizationService而不是XrmContext,这样更容易。