FluentNHibernate сущность локализации
Прежде всего, я исследовал некоторые решения, подобные этому. Теперь я пытаюсь достичь чего-то вроде этого:
public class Article : Entity
{
public int ID {get;set;}
public CultureInfo Culture {get;set;}
public DateTime PublishedOn {get;set;}
public string Title {get;set;}
}
Теперь вот факты:
- ID является уникальным идентификатором
- Культура должна отличать разные версии культуры
- Титульное свойство должно быть локализовано (одно сырье для каждой культуры)
- PublshDate не должен быть локализован, так как он одинаков для всех культур
Теперь вот что мне нужно:
- Используйте только один класс на предмет: я не хочу классы "Article" и "ArticleLocal"
- Обеспечить систему, позволяющую NHibernate получить надлежащую исходную культуру для сущности (на основе глобального свойства soem для текущей культуры)
- Если возможно, заставить NHibernate автоматически создавать локальную таблицу при инициализации.
Моя идея состояла в том, чтобы использовать атрибуты, но я не уверен, есть ли уже проверенное решение. Вот идея:
[LocalizedEntity]
public class Article : Entity
{
public int ID {get;set;}
[LocalizedCulture("CultureID")]
public CultureInfo Culture {get;set;}
public DateTime PublishedOn {get;set;}
[Localized("Title")]
public string Title {get;set;}
}
1 ответ
Решение
Этот вопрос всплывает время от времени, и я хотел бы предложить что-то без особой магии
- /questions/5765837/nastrojte-nhibernate-dlya-polucheniya-perevodov/5765846#5765846
- /questions/13224604/nhibernate-otobrazhenie-neskolkih-tablits-s-predlozheniem-where-ili-neskolkimi-stolbtsami/13224615#13224615
что дает преимущество в том, что реализация аварийного восстановления и добавление локализаций просто