【问题标题】:Entity Framework and Multi Language Databases实体框架和多语言数据库
【发布时间】:2011-02-20 23:34:14
【问题描述】:

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

[Product Table]
ProductID     PK
NameId        FK
DescriptionId FK

[Translation Table]
TextId        PK
LanguageId
TranslationText

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

谢谢, 尼克

【问题讨论】:

  • 一个与stackoverflow.com/questions/2587898/…非常相似的问题
  • 这是一个类似的问题,是的,但没有得到回答:)
  • 嗨尼克,我的架构和你的一样。你介意分享一下它在 edmx 上的样子吗?

标签: entity-framework multilingual


【解决方案1】:

当有人问我是否对此有解决方案时,我想我会为此添加我的解决方案:

我更改了数据库架构,因此我没有为不同文本类型的所有翻译提供一个表,而是有一个单独的“文本”表,例如

[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");

希望对你有帮助

【讨论】:

    【解决方案2】:

    Entity Framework 是一个通用的 ORM,它不提供任何特定领域的功能。对特定应用程序的多语言支持是一个特定领域的问题。

    您在寻找特定的东西吗?

    【讨论】:

    • 不寻找任何特定的号码。只是想知道在使用 EF 进行多语言解决方案时是否有任何最佳实践
    猜你喜欢
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-24
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 2012-01-16
    相关资源
    最近更新 更多