MS CRM 2011 SDKのドキュメントを読んでいると、エンティティにアクセスする方法が 2 つあります:
OrganizationServiceContext
またはOrganizationServiceProxy
.
なぜある方法を別の方法よりも選択するのでしょうか? SDK は、この点に関する設計上の考慮事項についてあまり明確ではありません。
MS CRM 2011 SDKのドキュメントを読んでいると、エンティティにアクセスする方法が 2 つあります:
OrganizationServiceContext
またはOrganizationServiceProxy
.
なぜある方法を別の方法よりも選択するのでしょうか? SDK は、この点に関する設計上の考慮事項についてあまり明確ではありません。
IOrganizationServiceは、CRMシステムへの接続です。
Microsoft Dynamics CRM 2011では、組織のデータとメタデータにアクセスする主要なWebサービスはIOrganizationServiceWebサービスです。
クラスOrganizationServiceContextは、アーリーバウンドエンティティクラスを使用しているときに作成されるデータコンテキストの基本クラスとして使用されます。組織サービスコンテキストクラスの使用方法を参照してください。基盤となる接続としてIOrganizationServiceを使用します。
OrganizationServiceContext には、CRM の LINQ プロバイダーが含まれています。これを使用すると、IOrganizationService ディレクトリを使用する場合に必要な QueryExpression または FetchExpressions を使用する代わりに、LINQ クエリを作成できます。
crmsvcutil.exe は、OrganizationServiceContext から継承する CRM 組織固有のクラスを生成できます。この場合、生成されたクラスで ContactSet、AccountSet などのプロパティを取得すると、クエリの作成が容易になります。
OrganizationServiceContext を使用するには、IOrganizationService インスタンスが必要です。
詳細については、 http://msdn.microsoft.com/en-us/library/gg328028.aspxを参照してください。