私はあまり野心的ではないかもしれないが、誰かが解決策を提案できることを望んでいるかもしれない。Nhibernate - 単一のDB列のコンマで区切られたキーリストへの汎用的なIListオブジェクトのマッピング
TravellingChoices、SocialisingChoices、SportChoicesなどのUserChoiceオブジェクトが数多くあり、ユーザープロファイルにはどのユーザーが該当するかを正確に指定するため、DBではINT IDでマップされた単一のプロファイル行があります選択した選択肢オプションのキーに対応しています。
NHibernateでプロファイルを読み込むと、多対1のマッピングを使って、実際にTravellingChoice、SocialisingChoice、SportChoiceなどのオブジェクト自体が含まれているプロファイルオブジェクトを構築します。IDオブジェクトではありません。
問題は、特定の条件を満たす他のユーザーを検索できるようにすることですが、複数のユーザーを選択することができます。たとえば、2つの異なる旅行の選択のいずれかを持つユーザー、または検索する3つのスポーツの選択肢を選択することができます。
だから、検索条件は、強く型付けされたリストの数は、などIList<TravellingChoice>
IList<SocialisingChoice>
とを例えばように私は、メモリ内に持っていると思ったオブジェクト。
問題は、私は私が行うことができるようにしたいどのような
が..ですidはリスト 例えばSocialisingChoicesColumn : 1,2,6
TravellingChoicesColumn : 5,8
などを分離して検索条件が列の数としてDBにオブジェクトを格納していていますid /カンマリストの場合、nhibernateマッピングでカラムをフルにしてテーブルを取得し、完全に入力されたオブジェクトでそれぞれを関連するTyped Ilistに変換します。
は、どのように私は
IList<TravellingChoice>
IList<SocialisingChoice>
など。 プロパティを持つオブジェクトに、ID /コンマリストと上記の表から行くのですか?
これはNhibernateで可能か複雑すぎるのでしょうか?
ありがとう、私はそれぞれのタイプのこれらのいずれかを作成する必要がありますか?私はあなたがここでハードコーディングされたトラベリングチョイスを見ています。同じタイプのクラスを一般的な方法で再利用する方法はありますか?私はこのような実装が必要な約15種類があり、すべて同じIDカラムで同じです - したがって、ジェネリック制約 – NZJames
が一般化するように編集されました。これはトリックを行う必要があります – Firo
私は欠けている方法を実装しました。しかし、それはテストされていません – Firo