2009-05-14 1 views
0

私たちはCSLA Business ObjectsとNHibernate ORMを使用する多層アプリケーションを持っています。 Business Objectsでは、コレクションデータメンバーをICollection<T>、オブジェクトマッピングファイルでは<set>と定義しています。NHibernateを使用し、クライアントアプリケーションでそのアセンブリを参照していない

NHibernateはこれらのコレクションをフェッチするために独自の具体的な型を使用するため、クライアントアプリケーションでNHibernateアセンブリを参照しないため、これらのコレクションがクライアントに到達すると問題が発生します。 )。

NHibernateのコレクション型インターフェイスを実装せずに、それを解決する方法や、何らかの理由で.Netコレクション型または独自のコレクション型を使用する方法がありますか?

ありがとうございました。

ヤロン

答えて

0

NHibernateのは、持続性の状態を管理するために、コレクションの独自の実装を必要とします。したがって、NHibernatesの動作を変更することはできません。

私たちはWCFを使用しています。シリアライズ時にコレクションを配列またはリストに変換します。インフラストラクチャでこれが行われない場合は、クライアントに送信する前にオブジェクトを変換する必要があります。

とにかくDTO(データ転送オブジェクト)モデルを使用することをお勧めします。ビジネスモデルからDTOモデルにすべてのデータをコピーする必要があります。

DTOモデルが好きでない場合は、コレクションを交換する必要があると思います。 NHのコレクションを.NETフレームワークコレクションと交換するメソッドを作成します。反射を使って

または、あなたはクライアントでNHibernateへの参照を使用しています。

関連する問題