本地化表和实体框架

时间:2009-11-03 15:27:48

标签: c# entity-framework entity culture

我有一个场景,我需要在数据库中对象的本地化值。

假设您有一个可以创建动物的应用程序,如果用户是英语,动物的“名称”属性的值将在UI中输入为“猫”,而它将作为“聊天”输入法语。

动物养殖表将包含2个指向父表中同一动物的记录。

当读回值时,如果用户文化中不存在“名称”的值,则将使用默认值(最初创建对象的值)。 下图说明了如何在SQL中存储数据:

alt text

我正在尝试使用实体框架将此架构映射到对象模型,我对解决问题的最佳方法感到困惑。

EF适合这个吗?我应该使用EF4吗?

此.NET模型将由.NET RIA Services使用。

谢谢,

Pierre-Yves Troel

2 个答案:

答案 0 :(得分:4)

我在类似情况下所做的是创建一个视图说LocalizedAnimals,它是该2表结构的平面表示,并为该视图创建了EF模型。因此,当我需要显示说法国动物数据时,我会过滤那些LocalizedAnimals,并因此得到漂亮的简单对象列表。

这样的事情:

var localizedAnimals = myContext.LocalizedAnimals.Where(
                           p => p.CultureName == Thread.CurrentThread.CurrentUICulture.Name
                       );

答案 1 :(得分:-1)

我不确定你是否想在数据库中这样做。我认为使用定义特定于文化的名称的配置文件或资源会更明智。

您还可以查看Microsoft internationalization and localization上的文档。