【问题标题】:MS CRM 2011 First ConnectionMS CRM 2011 首次连接
【发布时间】:2015-01-19 14:31:41
【问题描述】:

我在使用 Microsoft Dynamics CRM 2011 时遇到问题。我想在 C# 中获得第一个连接。我拥有连接 CRM 的所有信息。我可以在浏览器上做到这一点。

我还应该添加/删除一条新记录(如果用户填写联系表并按下按钮,我应该将他成功添加到 CRM)。

有没有清晰易懂的例子?我发现了一些让我感到困惑的事情。

【问题讨论】:

    标签: c# dynamics-crm-2011 dynamics-crm


    【解决方案1】:

    您可以像这样连接到 CRM:

    1. 把它放在你的app-config中的“connectionStrings”-Tag:

      <add name="MyAppConfigString" connectionString="Url=http://myserver:5555/myorg;Domain=mydomain; Username=myuser; Password=mypassword"/>
      
    2. 这是向 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的信息。它是一个必须的图书馆还是不同的东西?
    • myorg 是 crm 实例的组织名称。只需从浏览器中输入您的网址。如果没有组织,则不必添加。您必须在项目中引用这些 dll(您可以在 sdk - microsoft.com/en-us/download/details.aspx?id=24004 中找到它们):microsoft.xrm.client 和 microsoft.xrm.sdk.dll
    • 我明白了,谢谢。那么,我怎样才能得到myRecordId?。简单的解决方案是获取 ID 列值。 CRM SDK 有什么不同的方式吗?
    • CrmConnection 位于 Microsoft.Xrm.Client.dll 中。请注意,这是为连接到 CRM 的外部应用程序设计的,并不打算在 CRM 服务器本身上使用。
    • 我认为他正在编写一个独立的应用程序或 asp.net-website(这就是我理解问题的方式)。如果他想创建一个“插件”,那么他根本不需要创建连接。但即使在插件中,我也使用这个参考,因为使用 linq 一切都非常简单和干净;)
    【解决方案2】:

    我本来想对 Tobias Koller 的回答发表评论,但我的低名声阻止了我这样做。

    他的解决方案是正确的,但很高兴知道,为了在不创建任何新记录的情况下测试与 CRM 的连接,您可以执行 WhoAmIRequest:

    WhoAmIRequest userRequest = new WhoAmIRequest();
    WhoAmIResponse user = (WhoAmIResponse)service.Execute(userRequest);
    

    返回的值应该是您用于请求的用户。

    【讨论】:

    • 我应该在创建像 Tobias Koller 的回答这样的连接实例后使用它
    • 如果你想使用 WhoAmIRequest,你必须在创建连接后使用它。您需要连接中的“服务”来发出这样的请求。
    • 是的。如果您想使用此 WhoAmIRequest 来测试连接,您可以替换 Tobias 创建“联系人”实体的那段代码。编辑:正如托比亚斯所说,您需要使用“服务”,而不是“上下文”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-16
    • 2015-03-13
    • 1970-01-01
    • 2014-01-11
    相关资源
    最近更新 更多