如何定义早期绑定实体?

时间:2017-10-04 12:51:29

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

我试图编译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是否提供了库?

enter image description here

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

array = [1, 2, 3, 4, 5]
def func(*args):
   return args

print func(*array)

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