Я пытаюсь построить базу данных из сопоставлений 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 AND LanguageCode в качестве первичных ключей и ForeignKey к языковой таблице.
И в таблицах MyClass1 и MyClass2 я хочу, чтобы столбцы NameId (int) и DescriptionId (int) были сопоставлены с ShortString.и таблицы LongString соответственно.
Я полностью застрял.Как мне этого добиться?