0

CRM 4 では、CRMService.asmx のビジュアル スタジオ プロジェクトに Web 参照を追加していました。これにより、すべてのエンティティ (カスタム エンティティを含む) とすべてのサービスが表示されます。

今、私は CRM 2011 に移行しましたが、ここでどのように機能するのか完全に理解していません..organization.svc の Web 参照を追加すると、カスタム エンティティが追加されません。crmSvcUtil.exe を使用すると生成されますすべてのエンティティ (カスタム エンティティを含む) のクラスはありますが、サービスはありません。CRM 2011 で organization.svc を操作するにはどうすればよいですか? crmSvcUtil を使用するだけですか、それとも organization.svc の Web 参照と組み合わせる必要がありますか?

4

1 に答える 1

5

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());

次に、作成済みのサービス プロキシを使用して、CRM データの操作を開始できます。アカウントを作成するには:

var account = new Account();
account.Name = "Testing";
serviceProxy.Create(account);

さらに読むためのリンク:

DiscoveryService

IOrganizationService の使用

組織サービス コンテキストの使用

于 2012-07-24T08:37:19.323 に答える