.net FluentNHibernate实体本地化

.net FluentNHibernate实体本地化,.net,localization,fluent-nhibernate,.net,Localization,Fluent Nhibernate,首先,我研究了一些解决方案,如 现在,我正在努力实现以下目标: 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是唯一标识符 文化应该区分不同的文化版本 标题属性应本地

首先,我研究了一些解决方案,如 现在,我正在努力实现以下目标:

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不应该本地化,因为它对所有文化都是一样的
  • 现在,我需要的是:

  • 每个entty只使用一个类:我不想要“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;}
    }
    

    这个问题不时出现,我会建议一些没有太多魔力的东西

    这样做的好处是实现回退和添加本地化非常容易