本地化表和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有关国际化和本地化的文档。