2012-04-05 5 views
1

Ich habe ein Problem in Code Entity Framework zunächst in der Datenbank drei Tabelle wie folgt:Composite-Primärschlüsselfrage in Entity Framework Code ersten

CREATE TABLE [Food](
PK [FoodId] [int] NOT NULL, 
[FoodName] [varchar](50) NULL) 

CREATE TABLE [Fruit](
PK [FruitId] [int] NOT NULL, 
[FruitName] [varchar](50) NULL) 

CREATE TABLE [FoodFruit](
PK, FK [FoodId] [int] NOT NULL, 
PK, FK [FruitId] [int] NOT NULL) 

Das Modell wird nur erzeugen Lebensmittel, Obst Einheiten.

Aber wenn ich fügen Sie eine neue Spalte [Notizen] zu FoodFruit Tabelle, wie Anmerkungen:

CREATE TABLE [FoodFruit](
PK, FK [FoodId] [int] NOT NULL, 
PK, FK [FruitId] [int] NOT NULL, 
[Notes] [varchar](50) NULL) 

Das Modell wird erzeugen Lebensmittel, Obst und FoodFruit Einheiten.

Also, ich bin es verwirrt, warum der erste die FoodFruit-Entity nicht generiert.

Antwort

2

Das ist richtiges Verhalten. Im ersten Fall ist Ihre FoodFruit-Tabelle lediglich ein Datenbankhelfer, um eine Viele-zu-Viele-Beziehung zu modellieren. EF benötigt keinen solchen Helfer im konzeptionellen Modell, so dass diese Tabelle hinter einer direkt modellierten Viele-zu-Viele-Beziehung versteckt ist. Im zweiten Fall hat die Tabelle zusätzliche Daten - sie wird zur vollständigen Entität, nicht nur zur Junction-Tabelle für die Beziehung. EF erkennt es und ordnet es als neue Klasse zu.

+0

Vielen Dank für Ihre Antwort. Ich habe noch eine Frage. Im ersten Fall, wenn ich Daten in die FoodFruit-Tabelle einfügen oder aktualisieren möchte, stellt sich jedoch heraus, dass die Entität von FoodFruit nicht existiert. Was soll ich tun? –

+0

Essen und Obst sollte Navigationseigenschaften haben - Sammlung von verwandten Entitäten und Sie werden nur Element zu dieser Sammlung hinzufügen. –

+0

Ja, Danke für Ihre Hilfe. –

Verwandte Themen