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
Ich nehme mal an, dass ein Fehler in der Modellierung der Datenbank vorliegt. Kannst du mal das SQL-Create Script posten?
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
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