2010-05-18 6 views
7

Ich frage mich nur, ob es Best Practices bei der Verwendung von Entity Framework mit mehrsprachigen Datenbanken gab? Meine Datenbank-Design dies für die Handhabung ist eine separate Tabelle für alle meine Übersetzungen haben:Entity Framework und Multi-Language-Datenbanken

[Product Table] 
ProductID  PK 
NameId  FK 
DescriptionId FK 

[Translation Table] 
TextId  PK 
LanguageId 
TranslationText 

Ich bin glücklich, mit diesem Ansatz zu gehen zusammen, aber ich frage mich, ob Entity Framework alle Funktionen, die dabei helfen können? Es wäre schön, ein Product-Entity-Objekt zu haben, ihm eine Sprache zu geben und dann direkt und in der richtigen Sprache auf die Felder Name und Beschreibung zuzugreifen.

Danke, Nick

+0

Eine sehr ähnliche Frage http hilft: ja //stackoverflow.com/questions/2587898/multilingual-database-with-entity-framework-4-guidance –

+0

Es ist eine ähnliche Frage, aber dass man nicht beantwortet bekommen :) –

+0

Hallo Nick, ich habe das gleiche Schema wie Ihres. Macht es Ihnen etwas auszumachen, wie sieht es auf der edmx aus? –

Antwort

1

Entity Framework ist ein ORM für allgemeine Zwecke, ist es keine domänenspezifische Funktionen bieten. Die Unterstützung mehrerer Sprachen für eine bestimmte Anwendung ist ein domänenspezifisches Problem.

Suchen Sie etwas Bestimmtes?

+1

Nicht auf der Suche nach etwas Bestimmten Nein. Ich habe mich nur gefragt, ob es Best Practices für mehrsprachige Lösungen mit EF gibt –

2

Als jemand gefragt hat, ob ich jemals eine Lösung für diese bekam, dachte ich, ich würde meine Lösung hinzufügen:

Ich habe das DB-Schema so stattdessen eine Tabelle für verschiedene Texttypen für alle Übersetzungen zu haben, Ich habe eine separate 'Text' Tabelle zB

Ich habe eine Reihe dieser "Text" -Tabellen für Übersetzungen in lokaler Sprache für jeden Entitätstyp, der sie benötigt.

Dann, wenn ich die lokalisierten Daten von EF zugreifen müssen, verwende ich die folgenden (Beispiel ist der deutsche Text zu bekommen):

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

Hope this