在 CRM 2011 中,您不会像在 CRM 4 中那样添加对 Web 服务的引用。如果您想要早期绑定的实体类,那么您必须使用 crmsvcutil.exe 生成它。如果您打算使用 LINQ 查询您的 CRM 数据,则添加 /serviceContextName:contextname 并且将在代码文件中生成一个 OrganizationServiceContext。
如果您不关心早期绑定的实体类,那么您可以使用实体类。在 2011 年,您使用 CRM 4 中称为 DynamicEntity 的实体类。
为了对 CRM 2011 进行任何操作,您必须向项目添加一些引用,您可以在包含 sdk 的 bin 文件夹中找到它们。
您将始终添加对 Microsoft.Xrm.Sdk 的引用。如果您将使用早期绑定,您还需要对 Microsoft.Crm.Sdk.Proxy 的引用。从标准的 .Net 库中,您必须添加对 System.ServiceModel 和 System.Runtime.Serialization 的引用
要连接到 CRM 2011,您将使用 OrganizationServiceProxy。
var organizationUri = new Uri("http://<servername>/<organizationname>/XRMServices/2011/Organization.svc");
var credentials = new ClientCredentials();
var serviceProxy = new OrganizationServiceProxy(organizationUri, null, credentials, null);
// If you use early bound entity classes, you have to include the line below. Not needed on late bound
serviceProxy.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
然后通过使用已经创建的 serviceproxy,我可以开始使用 CRM 数据。创建帐户:
var account = new Account();
account.Name = "Testing";
serviceProxy.Create(account);
一些进一步阅读的链接:
发现服务
使用 IOrganizationService
使用组织服务上下文