代码之家  ›  专栏  ›  技术社区  ›  Chris Meek

NHibernate映射问题

  •  0
  • Chris Meek  · 技术社区  · 15 年前

    我在现有数据库中有以下一组表。

    资源-资源ID

    本地化资源-本地化资源ID、资源ID、语言、区域性、本地化术语

    Office-OfficeID,名称资源ID

    现在,我想查询一个特定的办公室,如果找不到指定语言和区域性的条目,那么可以返回特定语言-区域性组合的办公室名称,该组合将返回到默认语言“en”和区域性“gb”。

    所以像这样…

    public class Office
    {
        public virtual int OfficeId { get; set; }
        public string Name { get; set; }        
    }
    
    repository.GetOffice(5 /* id */,"zh" /* language */,"cht" /* culture */);
    

    我们也希望这样做是为了节约…

    repository.SaveOffice(office,"zh" /* language */,"cht" /* culture */);
    

    目前,我们正在使用函数提取正确名称的一组自定义写入存储过程中执行所有映射。这显然会减慢我们的速度,因为我们必须为所有的CRUD代码编写大量的SP。

    1 回复  |  直到 15 年前
        1
  •  1
  •   Jamie Ide    15 年前

    本文就 localizing NHibernate using filters 可能有助于检索对象,但我不知道它是否有助于保存。

    编辑为添加:您可以将本地名称映射为Office上的集合,并使用Office上的方法从集合中查找本地名称。根据应用程序如何使用Office对象,性能可能是可以接受的。