3 つのテーブル間の関係をマップしようとしています。
カテゴリー
CategoryId
ParentId
ロケール
LocaleId
LocaleCode
カテゴリロケール
ID
LocaleId
CategoryId
CategoryName
構造を持つオブジェクトもあります
カテゴリー
CategoryId
CategoryName
ParentId
これが私のマッピングです
public CategoryMap()
{
Id(x => x.CategoryId);
Map(x => x.ParentId);
Join("CategoryLocale", m =>
{
m.KeyColumn("CategoryId");
m.Map(x => x.CategoryName);
m.References(x => x.Locale,"LocaleId");
});
}
クエリは単純です
var query = session.QueryOver<Category>();
適切な量のカテゴリが返され、生成された SQL は正しく、考えられるすべての組み合わせを返しますが、マッピングには重複があるため、3 つの異なるロケールではなく、同じロケールで同じカテゴリを 3 回取得します。
何か案は?
カテゴリにマップされた CategoryLocale オブジェクトと、CategoryName が CategoryLocale の下に配置されたときに機能するロケールがありましたが、カテゴリ自体を正しく入力するか、Category オブジェクトの Locale プロパティに正しい値を指定する必要があります。