我正在尝试映射三个表之间的关系。
类别
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 是正确的并返回所有可能的组合,但是映射有重复,所以我不是三个不同的语言环境,而是在相同的语言环境下三次获得相同的类别。
有任何想法吗?
我有一个 CategoryLocale 对象,它映射到一个类别和一个在 CategoryName 被放置在 CategoryLocale 下时起作用的语言环境,但是我需要正确填写它自己的 Category,或者在 Category 对象中使用具有正确值的 Locale 属性。