我只是想知道在将Entity Framework与多语言数据库一起使用时是否有任何最佳实践?我处理这个的数据库设计是为我的所有翻译都有一个单独的表:
[Product Table] ProductID PK NameId FK DescriptionId FK [Translation Table] TextId PK LanguageId TranslationText
我很高兴采用这种方法,但我想知道Entity Framework是否有任何可以帮助解决此问题的功能?能够拥有一个Product实体对象,给它一种语言然后直接以正确的语言访问名称和描述字段会很好.
谢谢,
缺口
解决方法
正如有人问我是否得到了解决方案,我想我会添加我的解决方案:
我更改了数据库架构,而不是为不同文本类型的所有翻译都有一个表,我有一个单独的“文本”表,例如
[Product Table] ProductID PK ProductName In master language for reference ProductDesription In master language for reference <other product fields> [ProductText Table] ProductID PK LanguageId PK ProductName Language-Specific name ProductDescription Language-Specific description
我有许多这些“文本”表,用于需要它的每种实体类型的本地语言翻译.
然后,如果我需要从EF访问本地化数据,我使用以下(例如获取德语文本):
Product product = db.Products.Where(m => m.ProductId == 1); ProductName germanProductName = product.ProductNames(m => m.LanguageId == "de");
希望这可以帮助