2010-11-21 3 views
1

wenn ich mehrere andere Beiträge richtig verstanden, es ist derzeit nicht möglich, dass ein Unternehmen mehr als eine Tabelle abzubilden, wenn sie nicht den gleichen Primärschlüssel teilen.eine Entität mehr als eine Tabelle (EF4, WCF RiaServices) Mapping - Internationalisierung

Ist das immer noch wahr? Ich frage mich, wie Internationalisierung mit dem untenstehenden db-Design und EF gehandhabt werden sollte.

Ich habe eine internationalisierte db wo Texte in separaten Tabellen gespeichert sind. z.B.

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 

So besteht das Produkt aus zwei Tabellen. In der Tabelle Produkt ist der sprachunabhängige Teil gespeichert und in der Tabelle Product_i18n ist der sprachabhängige Teil gespeichert. Die beiden Tabellen sind physisch mit einer 1: n-Verknüpfung verknüpft, aber logischerweise ist es eine 1: 1-Verknüpfung, da ich bei einer bestimmten Operation immer eine Sprache brauche.

Daher würde Ich mag die beiden Tabellen in einer einzigen Einheit Produkt kombinieren, die

der Säulen besteht
  • ProductID
  • ProductGroupID
  • LanguageID
  • Product
  • Beschreibung ...

Wenn dies wou Könnte ich den internationalisierten Tisch aus meinem Modell heraushalten, um es klarer zu machen?

Ist dies mit EF4 möglich? Jede Anleitung und Erfahrung mit der Internationalisierung zur Lösung dieses Problems ist willkommen.

Vielen Dank

Uwe

Antwort

1

Ich weiß nicht, ob Sie immer noch das Problem mit sich, aber Sie können es lösen eine Ansicht für Ihre Produkte verwenden, genauer, eine Ansicht für jede Sprache.

+1

Sie könnten eine parametrisierte Ansicht verwenden, die wahrscheinlich besser wäre und eine einfache Addition neuer Kulturen ermöglicht. –

Verwandte Themen