【问题标题】:how to define early bound entities?如何定义早期绑定实体?
【发布时间】:2017-10-04 12:51:28
【问题描述】:

我正在尝试编译this 代码示例。

它依赖于 SystemUser:

                    // Now make an SDK call with the organization service proxy.
                // Display information about the logged on user.
                Guid userid = ((WhoAmIResponse)organizationProxy.Execute(
                    new WhoAmIRequest())).UserId;
                SystemUser systemUser = organizationProxy.Retrieve("systemuser", userid,
                    new ColumnSet(new string[] { "firstname", "lastname" })).ToEntity<SystemUser>();
                Console.WriteLine("Logged on user is {0} {1}.",
                    systemUser.FirstName, systemUser.LastName);

但是 SystemUser 是一个早期绑定的实体,不是吗?

是否有我可以使用的 SystemUser 实现? Microsoft 是否提供库?

【问题讨论】:

    标签: c# .net visual-studio-2017 microsoft-dynamics dynamics-crm-2016


    【解决方案1】:

    您需要使用工具来生成早期绑定实体。有多种方法可以做到这一点:

    • 经典的方法是使用CrmSvcUtil
    • XrmToolBox 中使用Early Bound Generator。这基本上是 CrmSvcUtil 的用户界面以及各种改进。
    • 使用 CRM Code Generator for Visual Studio,它还运行 CrmSvcUtil,并进行了一些改进。
    • 使用XrmContext,这是一个从头开始重写的工具,它输出类似于由CrmSvcUtil 生成的早期绑定类,并进行了各种改进。 完全披露:我为制造此工具的公司工作(我强烈推荐使用它)

    您最终使用哪种工具并不重要。你实际使用一个更重要。我发现它比使用后期绑定实体有很大的好处。

    【讨论】:

    • 不知道 Visual Studio Henrik 的 Crm 代码生成器。凉爽的。我将补充一点,Early Bound Generator 还允许您存储特定于您拥有的连接的设置,并处理从 TFS 中检查内容、将它们添加到项目中以及添加到 TFS。
    【解决方案2】:

    我维护“DLaB.Xrm.Entities”一个早期绑定实体的 NuGet 包。它不会包含您所做的任何自定义,但它将具有默认属性/实体。

    【讨论】:

      【解决方案3】:

      这里的所有答案都很好,但运行此代码的最简单(也是最快)的方法是使用 SDK 本身提供的类

      \SDK\SampleCode\CS\HelperCode\MyOrganizationCrmSdkTypes.cs
      

      您尝试编译的示例项目已经引用了这些类:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-12-15
        • 1970-01-01
        • 1970-01-01
        • 2014-06-16
        • 1970-01-01
        • 2010-10-03
        • 1970-01-01
        相关资源
        最近更新 更多