0

歴史的な間違いを正すために、チームがリファクタリングを行っている可能性があります。DataContractsとOperationContractsをBLレイヤーから別のアセンブリに移動し、インターフェイスアセンブリからBLオブジェクトへの依存関係を切断し、生成されたプロキシではなくChannelFactoryを介してサービスを利用するようになりました。

次に、BLレイヤーをサポートするDALにEFを統合し始めます。EFチームはリリースごとに大きな概念の変更を行っているので(それは悪いことではありません:))、私は少し迷っています。

POCOでEFを使用し、これらのPOCOをサービスのデータコントラクトにします。DBに戻る更新はありません。Webサーバーに着信するデータのみ。私の問題は、EFのさまざまなバージョンからのあらゆる種類のソリューションが表示され、現在のベストプラクティスが何であるかがわからないことです...

誰かが私がこれを回避するのを手伝ってくれる?現在のベストプラクティスは何ですか?POCOをデータコントラクトとして使用するためにPOCOに設定する必要のある特別な属性またはメソッドはありますか?

4

1 に答える 1

3

EFからPOCOを生成してワイヤを介して送信する最も簡単で強力な方法は、T4テンプレートを使用することです。実際、.net 4.5を使用している場合、EFデザイナーは通常のVisualStudioCodegenの代わりにT4テンプレートを使用するようになりました。

T4で生成されたPOCOは、属性を追加せずにネットワークを介して送信できるようになっている必要がありますが、たとえそうであったとしても、必要に応じてT4テンプレートを変更するのは簡単です。

ベストプラクティスに関しては、「答え」は1つではないと思います。また、必要なものに応じてさまざまなアプローチがあります。私の意見では、T4を介したPOCO生成は、マッピングコードを記述する必要がなく、データレイヤー表現に依存しないPOCOライブラリがあるため、ほとんどのシナリオに最適なアプローチです。

これがテンプレートのダウンロードです

http://visualstudiogallery.msdn.microsoft.com/23df0450-5677-4926-96cc-173d02752313

ここにいくつかのチュートリアル/リソースがあります

http://sharedtolearn.blogspot.co.uk/2010/06/entity-framework-40-and-t4-templates-to.html

http://msdn.microsoft.com/en-us/data/ff717739.aspx

于 2012-11-20T07:59:05.357 に答える