2010-11-21 53 views
1

如果我正確理解其他幾個帖子,如果它們不共享相同的主鍵,那麼當前不可能將實體映射到多個表。將實體映射到多個表(EF4,WCF RiaServices) - 國際化

這是真的嗎?我想知道的是國際化應該如何處理下面的db設計和EF。

我有一個國際化的數據庫,文本存儲在不同的表中。 例如

CREATE TABLE Product(
ProductID int IDENTITY(1,1) NOT NULL, 
ProductGroupID int NOT NULL, 
... 
CONSTRAINT PK_Product PRIMARY KEY CLUSTERED 
(
ProductID ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY 
) ON PRIMARY 

CREATE TABLE Product_i18n(
ProductID int NOT NULL, 
LanguageID int NOT NULL, 
ProductName nvarchar(150) NULL, 
Description nvarchar(max) NULL, 
... 
CONSTRAINT PK_Product_i18n PRIMARY KEY CLUSTERED 
(
ProductID ASC, 
LanguageID ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY 
) ON PRIMARY 

所以該產品由兩個表組成。在表Product中存儲語言獨立部分,並在Product_i18n表中存儲語言相關部分。 這兩個表與1:n關聯物理鏈接,但邏輯上它是1:1關聯,因爲在某個操作中我總是需要一種語言。

所以我想這兩個表,其中包括列

  • 的ProductID
  • ProductGroupID
  • LanguageID
  • 產品名稱
  • 說明...
  • 一個單一的實體產品組合

如果這個wou有可能的話,我可以將國際化表格從我的模型中刪除,以使其更加清晰。

EF4有可能。歡迎任何有關國際化的指導和經驗來解決這個問題。

非常感謝

烏韋

回答

1

我不知道,如果你仍然有問題,但你可以使用視圖爲您的產品,更準確,對每種語言一個視圖解決這個問題。

+1

您可以使用參數化視圖,這可能會更好,並允許輕鬆添加新的文化。 – 2011-10-03 14:36:54

相關問題