在CRM4中,我常常在CRMService.asmx的visual studio项目中添加web引用,它会为我带来所有的实体(包括自定义实体)和所有的服务。
现在我已经转移到CRM2011,我真的不太明白它是如何在here..when上工作的我添加了organization.svc的web引用它不会添加我的自定义实体,当我使用crmSvcUtil.exe时,它会为所有实体(包括自定义实体)生成类,但没有services..So,我如何在CRM2011中使用organization.svc?我是只需要使用crmSvcUtil,还是将其与organization.svc的web参考相结合?
发布于 2012-07-24 16:37:19
在CRM2011中,您不会像在CRM4中那样添加对webservice的引用。如果您想要早期绑定的实体类,那么您必须使用crmsvcutil.exe生成它。如果您打算使用LINQ来查询您的客户关系管理数据,那么添加/serviceContextName:contextname,代码文件中就会生成一个OrganizationServiceContext。
如果你不关心早期绑定的实体类,那么你可以使用实体类。在2011年,您将使用CRM4中称为DynamicEntity的entity类。
为了使用CRM 2011做任何事情,你必须在你的项目中添加一些引用,你会在你安装sdk的bin文件夹中找到它们。
您将始终添加对Microsoft.Xrm.Sdk的引用。如果你要使用早期绑定,你还需要一个对Microsoft.Crm.Sdk.Proxy的引用。从标准.Net库中,您必须添加对System.ServiceModel和System.Runtime.Serialization的引用
要连接到CRM2011,您将使用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);下面是进一步阅读的链接:
DiscoveryService
Using the IOrganizationService
Using Organization Service Context
https://stackoverflow.com/questions/11619759
复制相似问题