本地化表和entity framework

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

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

动物培养表将包含指向父表中相同动物的2条记录。

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

替代文字

我正在尝试使用entity framework将此模式映射到对象模型,我对于解决问题的最佳方法有点困惑。

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

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

谢谢,

Pierre-Yves Troel

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

像这样的东西:

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

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

您还可以查看Microsoft有关国际化和本地化的文档。