实体框架和多语言数据库

时间:2010-05-18 15:56:34

标签: entity-framework multilingual

我只是想知道在将Entity Framework与多语言数据库一起使用时是否有任何最佳实践?我处理这个的数据库设计是为我的所有翻译都有一个单独的表:

[Product Table]
ProductID     PK
NameId        FK
DescriptionId FK

[Translation Table]
TextId        PK
LanguageId
TranslationText

我很高兴采用这种方法,但我想知道Entity Framework是否有任何可以帮助解决此问题的功能?能够拥有一个Product实体对象,给它一种语言然后直接以正确的语言访问名称和描述字段会很高兴。

谢谢, 尼克

2 个答案:

答案 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,它不提供任何特定于域的功能。对特定应用程序的多语言支持是特定于域的问题。

您在寻找具体的东西吗?