Fluent NHibernate mappings for localization

感情迁移 提交于 2019-12-06 10:09:37

Maybe you could ditch short and long string altogether

public class MyClass1 {
    public virtual int Id { get; set; }
    public virtual IDictionary<Language, string> Name { get; set; }
    public virtual IDictionary<Language, string> Description { get; set; }
}

public class MyClass2 {
    public virtual int Id { get; set; }
    public virtual IDictionary<Language, string> Name { get; set; }
    public virtual IDictionary<Language, string> Description { get; set; }
}

and use the folling Mapping

public class MyClass1Map : ClassMap<MyClass1>
{
    public MyClass1Map()
    {
        [...]
        HasMany(mc => mc.Name)
            .Table("ShortString")
            .KeyColumn("id")
            .AsEntityMap("language_id")
            .Element("value")
        HasMany(mc => mc.Description)
            .Table("LongString")
            .KeyColumn("id")
            .AsEntityMap("language_id")
            .Element("value", e => e.Length(1000))
    }
}

I cant test it right now so there might be tweaking nessesary

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!