【发布时间】:2015-01-19 14:31:41
【问题描述】:
我在使用 Microsoft Dynamics CRM 2011 时遇到问题。我想在 C# 中获得第一个连接。我拥有连接 CRM 的所有信息。我可以在浏览器上做到这一点。
我还应该添加/删除一条新记录(如果用户填写联系表并按下按钮,我应该将他成功添加到 CRM)。
有没有清晰易懂的例子?我发现了一些让我感到困惑的事情。
【问题讨论】:
标签: c# dynamics-crm-2011 dynamics-crm
我在使用 Microsoft Dynamics CRM 2011 时遇到问题。我想在 C# 中获得第一个连接。我拥有连接 CRM 的所有信息。我可以在浏览器上做到这一点。
我还应该添加/删除一条新记录(如果用户填写联系表并按下按钮,我应该将他成功添加到 CRM)。
有没有清晰易懂的例子?我发现了一些让我感到困惑的事情。
【问题讨论】:
标签: c# dynamics-crm-2011 dynamics-crm
您可以像这样连接到 CRM:
把它放在你的app-config中的“connectionStrings”-Tag:
<add name="MyAppConfigString" connectionString="Url=http://myserver:5555/myorg;Domain=mydomain; Username=myuser; Password=mypassword"/>
这是向 CRM 2011/2013 添加联系人的方法
var connection = new CrmConnection("MyAppConfigString");
using (var service = new OrganizationService(connection))
using (var context = new OrganizationServiceContext(service))
{
var contactRecord = new Entity("contact");
contactRecord.Attributes.Add("firstname", "Peter");
contactRecord.Attributes.Add("lastname", "Jackson");
context.AddObject(contactRecord);
context.SaveChanges();
}
要删除一条记录,简单地使用这个:
service.Delete("contact", myRecordId);
要检索可以使用 linq 的记录:
var query = context.CreateQuery("contact");
var result = query.FirstOrDefault(r => ((string) r["lastname"]) == "Jackson");
if(result != null)
{
var recordId = result.Id;
}
【讨论】:
myorg(服务网址?)和CrmConnection的信息。它是一个必须的图书馆还是不同的东西?
myRecordId?。简单的解决方案是获取 ID 列值。 CRM SDK 有什么不同的方式吗?
我本来想对 Tobias Koller 的回答发表评论,但我的低名声阻止了我这样做。
他的解决方案是正确的,但很高兴知道,为了在不创建任何新记录的情况下测试与 CRM 的连接,您可以执行 WhoAmIRequest:
WhoAmIRequest userRequest = new WhoAmIRequest();
WhoAmIResponse user = (WhoAmIResponse)service.Execute(userRequest);
返回的值应该是您用于请求的用户。
【讨论】: