2010-02-11 68 views
7

我需要在数据库中存储本地化的实体(例如一个产品,其名称不同,英文和丹麦文)。有几种众所周知的方式可以做到这一点,例如拥有某种包含本地化列值的资源表。任何.NET ORM是否支持开箱即用的本地化实体?

但是,当我想用​​英语检索产品类的实例并期望Name属性的值为英文时,这似乎不容易适合ORM。

我不想重新发明轮子,我认为这是一个非常普遍的问题。 任何ORM支持实体本地化的开箱即用?

因为我在微软的堆栈上,而ORM的明显选择是实体框架4. EF4中有没有什么特性支持它?

回答

1

我有完全相同的问题(本地化内容,MS堆栈,ORM ...),并与资源/ ResourceValue表一起去的那一刻。 我使用Linq-to-SQL与PLINQO templates,我稍微调整了在我的实体中生成自动本地化属性。

该模板检测资源表的外键并创建适当的列。

例如,如果我有一个带有int NameID FK列的产品表,它将在我的Product类中创建一个string Name属性,根据当前线程文化返回相应的值。

的缺点是:

  • 的插入/更新的复杂性(必须与3桌玩,但LINQ2SQL让它不是那么困难),在SQL管理
  • 浏览表是不好受,因为文本列只是国外钥匙

我发现这个问题后,“最佳实践”的解决方案,但我还没有找到一个呢。

+0

感谢您的输入。仅供参考,我们也使用了类似资源的表格,但为了获得所需的性能,我们进行了大量缓存。这增加了一些复杂性,我宁愿不这样做。 – driis 2011-09-17 08:43:40

相关问题