1

本質的に、私はNHibernateで次のことをしようとしています(理解しやすいようにしようとしています):

SELECT p.*
FROM ChildTable c
INNER JOIN ParentTable p ON p.Id = c.ParentId AND p.Language = :language

そしてもちろん、の型のp.*プロパティとして欲しいです。ParentObjectChildObject

ChildTable には Language 列がありません。したがって、:language はプログラムから定数として取得されます。

c.ParentId から ParentObject に変換して元に戻す UserType を作成することを考えていました (変換は言語に依存します)。

それは可能ですか?

私はすでに他の何かのために単純な IntToString IUserType を実行しました。

session.Get<ParentClass>(idLangIndexObject) その場合、メソッドで法線を実行するだけですか、それとも内部NullSafeGetのいずれかに影響がありますか?IUserType

私もやってみApplyFilter()ましたParentClassMapping(1つの言語だけに削減しようとしています)が、References()内部でGetを使用しているようで、Getは無視しますApplyFilter()

他にもっとエレガントなアイデアはありますか?

なんらかの方法があるに違いありません。結局のところ、これはロケット科学ではありません。

4

1 に答える 1

0

各子は明らかに複数の親を持つことができるため、子から親への 1 対多または多対多の関係 (多対 1 ではない) があります。これを適切に反映するコレクションとしてマップすると、コレクションのロードでフィルターが考慮されます。

于 2012-12-23T23:23:46.047 に答える