1

従来の階層化されたアプリケーションの設計について考えるとき、私はしばしば3つの層の観点から考えます。

  • 実際にデータベースと通信する最下層(これを「データアクセス層」と呼びましょう)。オブジェクトを(何らかの形で)次のレイヤーに返します。
  • 最下層の上の層(中間層、これを「データ層」と呼びます)は、データアクセス層からオブジェクトを取得し、ドメインオブジェクトをビジネス層に返します。
  • ビジネスレイヤーは、データレイヤーからドメインオブジェクトを取得し、それらを使用して処理を実行します。

これは確かに過度に単純化された説明であり、おそらく信じられないほど間違っています!:)

明らかに、LINQ to SQLがORMであるため、データアクセス層はLINQtoSQLオブジェクトを作成しています。これらのオブジェクトを中間層と最上層に渡すための適切なパターンは何ですか?

4

1 に答える 1

1

AutoMapperなどのテクノロジを使用して、LINQtoSQLオブジェクトをビジネス層のビジネスオブジェクトにコピーできます。シナリオに応じて、クライアントに返すデータ転送オブジェクトの別のレイヤーを作成できます。もう一度AutoMapperを使用して、適切なプロパティをビジネスオブジェクトからDTOオブジェクトにコピーできます。

http://en.wikipedia.org/wiki/Data_transfer_object

http://automapper.codeplex.com/

于 2010-08-02T16:01:36.603 に答える