4

私は最近、Entity Framework の DbContext を中心に構築された非常に堅牢な API を作成しました。私は多くのメタデータ プログラミングを使用しており、DbContext.Set(typeof(Customer)) のような呼び出しでデータを取得できるという事実を利用しています。ただ、私の API では、コンパイル時にどの型を Set メソッドに渡すかわかりません。これは EntityFramework で非常にうまく機能しており、レイヤーの抽象化をもう 1 つ追加して、EntityFramework または DataServiceContext の両方で機能させたいと考えています。それで、私は本当に2つの質問があります。

まず、より具体的には、DbContext.Set(type) メソッドに相当する DataServiceContext (つまり odata/wcf) はありますか?

次に、より一般的には、DbContext によって提供される API と DataServiceContext を比較する優れたリソースはありますか?

4

2 に答える 2

1

EntityFramework と DataServices クライアント API を混在させないでください。似ているように見えても、そうではありません。DbSet はエンティティ セットを表します。DataServiceContext のエンティティ セットに関する強い契約があるとは思いません。代わりに、エンティティ セットの名前は、これを知る必要があるメソッド (look atDataServiceContext.AddObject()またはDataServiceContext.CreateQuery()メソッドなど) に文字列として渡されます。ある意味では、DataServiceContext を動的にプログラムすることがはるかに簡単になります。一方で、パイプの反対側 (つまりサーバー) に何があるかを知る必要があります。上で述べたように、WCF Data Services と EntityFramework は (連携することはできますが) 異なるテクノロジであり、それらの API は類似していますが、異なる目的を果たします。したがって、それらを比較することは、リンゴとオレンジを比較するようなものです。

于 2013-01-19T22:54:55.417 に答える