2010-05-18 35 views
7

我只是想知道在使用實體框架和多語言數據庫時是否有最佳做法?我的數據庫設計用於處理這是對所有我的翻譯的一個單獨的表:實體框架和多語言數據庫

[Product Table] 
ProductID  PK 
NameId  FK 
DescriptionId FK 

[Translation Table] 
TextId  PK 
LanguageId 
TranslationText 

我很高興與這種方法一起去,但我不知道是否實體框架具有可與此幫助的功能?能夠擁有產品實體對象,給它一種語言,然後以正確的語言直接訪問名稱和描述字段會很好。

感謝, 尼克

+0

一個非常類似的問題到http: //stackoverflow.com/questions/2587898/multilingual-database-with-entity-framework-4-guidance – 2010-05-19 07:00:39

+0

這是一個類似的問題,是的,但一個沒有得到回答:) – 2010-05-19 09:46:29

+0

你好尼克, 我有與您的模式相同。你介意分享它在edmx上的外觀嗎? – 2011-01-24 15:03:31

回答

1

實體框架是一個通用的ORM,它不提供任何特定於域的功能。對特定應用程序的多語言支持是一個特定於域的問題。

您是否在尋找特定的東西?

+1

不尋找任何具體的沒有。只是想知道在使用EF進行多語言解決方案時是否有最佳做法 – 2010-05-21 12:39:54

2

正如有人已經問如果我得到了這個決議,我想我要我的解決方案添加到這一點:

我改變了這樣而不是針對不同的文本類型的所有翻譯一個表中的DB模式,我有一個單獨的「文本」表,例如

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

希望這有助於