我正在尝试从 NHibernate 映射构建数据库,但遇到了问题。
我有许多具有本地化字符串值的类:
public class MyClass1 {
public virtual int Id { get; set; }
public virtual ShortString Name { get; set; }
public virtual LongString Description { get; set; }
}
public class MyClass2 {
public virtual int Id { get; set; }
public virtual ShortString Name { get; set; }
public virtual LongString Description { get; set; }
}
和像这样的语言
public class Language {
public virtual string Code { get; set }
public virtual string Name { get; set }
}
我的 ShortString 和 LongString 类看起来都一样:
public class ShortString {
public virtual int Id { get; set; }
public virtual IDictionary<Language, string> Values { get; set; }
}
我想要实现的是两个表(ShortString 和 LongString),如下所示:
TABLE ShortString
-----------------
Id (int)
LanguageCode (nvarchar(8))
Value (nvarchar(256)) (or ntext for the LongString Table)
...以 Id 和 LanguageCode 作为主键以及语言表的外键。
在 MyClass1 和 MyClass2 表中,我希望将 NameId (int) 和 DescriptionId (int) 列分别映射到 ShortString 和 LongString 表。
我完全被困住了。我怎样才能实现这个目标?