我有一个场景,我需要我的数据库中的对象的本地化值.
假设您有一个可以创建动物的应用程序,如果用户是英文,动物的“名称”属性的值将在UI中输入为“猫”,而将以法语输入“聊天”.
动物文化表将包含指向父表中相同动物的2条记录.
当读取值时,如果用户文化中不存在“名称”的值,则将使用默认值(该对象最初创建的值).
以下图表说明了数据如何存储在sql中:
我正在尝试使用实体框架将该架构映射到对象模型,对于解决问题的最佳方法我有些困惑.
EF适合吗?我应该用EF4吗?
这个EF模型将被.NET RIA服务使用.
谢谢,
皮埃尔·伊夫·特洛尔
解决方法
我在类似的情况下做的是创建一个视图,即LocalizedAnimals,它是该表格结构的平面表示,并为该视图创建了一个EF模型.所以当我需要显示法语动物数据时,我将过滤这些LocalizedAnimals,并且具有很好的简单对象列表.
这样的事情
var localizedAnimals = myContext.LocalizedAnimals.Where( p => p.CultureName == Thread.CurrentThread.CurrentUICulture.Name );