如何定义早期绑定实体?

how to define early bound entities?

我正在尝试编译 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 是否提供库?

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

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

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

我维护 "DLaB.Xrm.Entities" 早期绑定实体的 NuGet 包。它不会包含您所做的任何自定义设置,但会包含默认值 attributes/entities。

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

中SDK本身提供的类
\SDK\SampleCode\CS\HelperCode\MyOrganizationCrmSdkTypes.cs

您尝试编译的示例项目已经在引用此 类: