我只是想知道在将Entity Framework与多语言数据库一起使用时是否有任何最佳实践?我处理这个的数据库设计是为我的所有翻译都有一个单独的表:
[Product Table]
ProductID PK
NameId FK
DescriptionId FK
[Translation Table]
TextId PK
LanguageId
TranslationText
我很高兴采用这种方法,但我想知道Entity Framework是否有任何可以帮助解决此问题的功能?能够拥有一个Product实体对象,给它一种语言然后直接以正确的语言访问名称和描述字段会很高兴。
谢谢, 尼克
答案 0 :(得分:2)
有人问我是否得到了解决方案,我想我会加入我的解决方案:
我更改了数据库架构,因此我没有为不同文本类型的所有翻译创建一个表,而是有一个单独的“文本”表,例如。
[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");
希望这有帮助
答案 1 :(得分:1)
实体框架是一种通用的ORM,它不提供任何特定于域的功能。对特定应用程序的多语言支持是特定于域的问题。
您在寻找具体的东西吗?