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 の使用
組織サービス コンテキストの使用