Laden...

Entity-Framework und 1:m Beziehungen

Erstellt von .netlabs vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.341 Views
.
.netlabs Themenstarter:in
3 Beiträge seit 2010
vor 14 Jahren
Entity-Framework und 1:m Beziehungen

Guten Abend,

ich habe einen SQL-Server 2005 Express und nutze zur Programmierung Visual Studio 2008 Professional Edition.

Ich habe eine Tabelle A mit einer Spalte ID und eine Tabelle B mit zwei Spalten (ID, TabelleAID). Die Spalte TabelleAID ist ein Foreign Key auf Tabelle A.

Nun habe ich mir im Visual Studio die Tabellen mit dem Enitity-Framework umsetzen lassen. Jedoch zeigt dies die Tabellen wie folgt an:

Tabelle A (1) ...... (0..1) Tabelle B

Jedoch ist es eigentlich eine 1:m Beziehung. Also die ID von Tabelle A kann beliebig oft in Tabelle B vorkommen.

Kann mir jemand erklären wo der Fehler liegt?

Vielen Dank.

Steffen

C
401 Beiträge seit 2007
vor 14 Jahren

Ich nehme mal an, dass ein Fehler in der Modellierung der Datenbank vorliegt. Kannst du mal das SQL-Create Script posten?

.
.netlabs Themenstarter:in
3 Beiträge seit 2010
vor 14 Jahren

Guten Morgen,


CREATE TABLE [Settings].[Group](
	[ID] [uniqueidentifier] NOT NULL,
	[Groupname] [nvarchar](200) COLLATE Latin1_General_CI_AS NOT NULL,
 CONSTRAINT [PK_Group] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

Das ist die Tabelle aus der der FK kommt.

CREATE TABLE [Settings].[Setting](
	[ID] [uniqueidentifier] NOT NULL,
	[GroupID] [uniqueidentifier] NOT NULL,
	[Name] [nvarchar](200) COLLATE Latin1_General_CI_AS NOT NULL,
	[Value] [nvarchar](200) COLLATE Latin1_General_CI_AS NULL,
 CONSTRAINT [PK_Setting] PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
ALTER TABLE [Settings].[Setting]  WITH CHECK ADD  CONSTRAINT [FK_Setting_Group] FOREIGN KEY([ID])
REFERENCES [Settings].[Group] ([ID])
GO
ALTER TABLE [Settings].[Setting] CHECK CONSTRAINT [FK_Setting_Group]

Und das ist die Tabelle in der der FK in der Spalte GroupID benutzt wird.

Viele Grüße

Steffen

C
401 Beiträge seit 2007
vor 14 Jahren

Ich schätze hier ist das Problem:


FOREIGN KEY([ID])
REFERENCES [Settings].[Group] ([ID])

Du referenzierst Group.ID auf Setting.ID. Das sollte sicherlich Setting.GroupID sein. Da Setting.ID der Primary Key ist und Primary Keys generell Unique sind kann er höchstens 1 mal in der Tabelle auftauchen, von daher 0..1.

Ich hoffe das hilft Dir.

Gruß

Dario

.
.netlabs Themenstarter:in
3 Beiträge seit 2010
vor 14 Jahren

Vielen Dank.

Das war der Fehler.

Viele Grüße

Steffen