2010-05-18 7 views
7

Je me demandais simplement s'il existait des bonnes pratiques lors de l'utilisation d'Entity Framework avec des bases de données multilingues? Ma conception de base de données pour le traitement est d'avoir une table séparée pour toutes mes traductions:Entity Framework et bases de données multilingues

[Product Table] 
ProductID  PK 
NameId  FK 
DescriptionId FK 

[Translation Table] 
TextId  PK 
LanguageId 
TranslationText 

Je suis heureux d'accompagner cette approche, mais je me demandais si Entity Framework a des caractéristiques qui peuvent aider à cela? Il serait bien de pouvoir avoir un objet Entité produit, de lui donner une langue et d'accéder directement aux champs de nom et de description dans la langue correcte.

Merci, Nick

+0

Une question très semblable à http: //stackoverflow.com/questions/2587898/multilingual-database-with-entity-framework-4-guidance –

+0

Il est une question similaire, oui, mais que l'on n'a pas répondu :) –

+0

obtenir Salut Nick, Je le même schéma que le tien. Cela vous dérange-t-il de partager à quoi ressemble l'edmx? –

Répondre

1

Entity Framework est un ORM à usage général, il ne propose pas de fonctionnalités spécifiques à un domaine. Le support multilingue pour une application particulière est un problème spécifique au domaine.

Vous cherchez quelque chose en particulier?

+1

Je ne cherche rien de spécifique. Était juste se demandant s'il y avait des meilleures pratiques lorsque vous faites des solutions multilingues avec EF –

2

Comme quelqu'un a demandé si je suis une résolution pour cela, je pensais que je voudrais ajouter ma solution à ceci:

J'ai changé le schéma DB au lieu d'avoir une table pour toutes les traductions pour différents types de textes, J'ai une table 'Texte' séparée J'ai un certain nombre de ces tables de 'texte' pour les traductions en langue locale pour chaque type d'entité qui en a besoin.

Alors si je dois accéder aux données localisées de EF, j'utiliser ce qui suit (exemple pour obtenir le texte allemand):

Product product = db.Products.Where(m => m.ProductId == 1); 
ProductName germanProductName = product.ProductNames(m => m.LanguageId == "de"); 

Hope this helps

Questions connexes