.net 通过Microsoft.PowerPlatform.Dataverse.Client在Dynamics 365 CRM中创建新帐户时出现异常

72qzrwbm  于 2023-04-08  发布在  .NET
关注(0)|答案(1)|浏览(333)

我正在创建一个新的帐户,使用此代码:

string cs = "connection";

ServiceClient serviceClient = new(cs);

Entity account = new("account");
account.Attributes.Add("name", "name");
account.Id = Guid.NewGuid();
account["custom_attribute1"] = "custom_attribute1";
account.Attributes.Add(new KeyValuePair<string, object>("custom_attribute2", custom_attribute2.Admin));

// serviceClient.Update(account);
serviceClient.Create(account);

我正在重构旧的解决方案,我们有一些自定义属性,其中value是Enum值。出于某种原因,当我这样添加它时,它不起作用。我试图使用整数和字符串值,但没有任何变化。
我得到这个错误:
未处理的异常。System.ArgumentNullException:值不能为Null。(参数“value”)
at Microsoft.PowerPlatform.Dataverse.Client.ServiceClient.Create(Entity实体)
异常消息到目前为止还不清楚,因为我希望它是,所以我挣扎与调试。我会很感激,如果有人可以帮助我

flseospp

flseospp1#

首先,您需要检查连接是否正常工作,通常在初始化ServiceClient之后执行WhoAmIRequest

WhoAmIResponse response = serviceClient.Execute(new WhoAmIRequest());

如果这段代码没有抛出异常,则连接工作。
为了创建一个帐户,最简单的代码是:

Entity account = new Entity("account");
account["name"] = "TEST";
serviceClient.Create(account);

如果你在更新某个特定的属性时遇到问题,你需要检查属性类型,例如如果是一个OptionSet/Choice(你提到的Enum可以连接一个持有数值的值),语法将是(假设你要放的值是2):

account["custom_attribute1"] = new OptionSetValue(2);

相关问题