2011-08-08 8 views
1

私は現在、私たちは軽量DataAccessLayerを使用しているプロジェクトに取り組んでいます。プロジェクトは、ビジネス層、データ要求層、およびDTOを保持するプロジェクトで構成されています。この設定は修正されており、変更することはできません。また、NhibernateやEntity Frameworkのような本格的なORMを使用することもできません。 オブジェクト/データベースマッピングはどこに属していますか?

OK

は、適切に我々は何とかデータベースのフィールドに私たちのDTOのプロパティをマッピングする必要があり、この設定で動作します。現在、私たちはdataaccesslayer(すべてのエンティティ/ DTOがdataaccesslayer-classを「所有」しています)でこれを実行しています。 これはMapToとMapFromの2つのメソッドで発生します。最初はオブジェクトのフィールドをテーブルのフィールドにマップし、もう1つは逆を行います。 dataaccesslayerは、このマッピングを定義するための正しい場所であれば

は今、私は思ったんだけど。 DTOのマッピングを定義する方が良いのではないでしょうか。たとえば、属性を持つ? または基本的にプロパティをテーブルのフィールドにマップするすべてのクラスのメソッドではなく、より一般的なメソッドです。

+0

Automapperを見てみましょうか? – automagic

答えて

0

あなたは正しい、DTOによってドメインモデルを意味ですか?通常、エンティティとテーブルの間のマッピングはデータアクセスレイヤに属します。しかし、私はドメインモデルプロジェクトにマッピングを入れません。その場合、たとえば、DBテーブルが変更された場合、ドメインモデルとDALを変更/コンパイルする必要があります。別の例では、DALにマッピングがある場合、データベースまたはORMメソッドを切り替えると、DALの変更のみで実現できます。

関連する問題