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;}
}

Теперь вот факты:

  1. ID является уникальным идентификатором
  2. Культура должна отличать разные версии культуры
  3. Титульное свойство должно быть локализовано (одно сырье для каждой культуры)
  4. PublshDate не должен быть локализован, так как он одинаков для всех культур

Теперь вот что мне нужно:

  1. Используйте только один класс на предмет: я не хочу классы "Article" и "ArticleLocal"
  2. Обеспечить систему, позволяющую NHibernate получить надлежащую исходную культуру для сущности (на основе глобального свойства soem для текущей культуры)
  3. Если возможно, заставить 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 ответ

Решение

Этот вопрос всплывает время от времени, и я хотел бы предложить что-то без особой магии

что дает преимущество в том, что реализация аварийного восстановления и добавление локализаций просто

Другие вопросы по тегам