0

予約と連絡先の間に多対多の関係があり、新しい連絡先を予約に追加しようとすると次のエラーが発生します。

    _db.Reservations.Add(reservation);
    reservation.Contacts.Add(user.Contact);
    _db.SaveChanges();

テーブル定義に問題があると思うので、テーブルの作成スクリプトをコピーして貼り付けます。私はreservaionIdとcontactIdの両方をreservation_contactテーブルの主キーにしています。違いますか?私のテーブル構造:

CREATE TABLE [dbo].[Reservation_Contacts](
    [Reservation_Id] [int] NOT NULL,
    [Contact_Id] [int] IDENTITY(1,1) NOT NULL,
 CONSTRAINT [PK_Reservation_Contacts] PRIMARY KEY CLUSTERED 
(
    [Reservation_Id] ASC,
    [Contact_Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Reservation_Contacts]  WITH CHECK ADD  CONSTRAINT [FK_Reservation_Contacts_Contact] FOREIGN KEY([Contact_Id])
REFERENCES [dbo].[Contact] ([Id])
GO

ALTER TABLE [dbo].[Reservation_Contacts] CHECK CONSTRAINT [FK_Reservation_Contacts_Contact]
GO

ALTER TABLE [dbo].[Reservation_Contacts]  WITH CHECK ADD  CONSTRAINT [FK_Reservation_Contacts_Reservation] FOREIGN KEY([Reservation_Id])
REFERENCES [dbo].[Reservation] ([Id])
GO

ALTER TABLE [dbo].[Reservation_Contacts] CHECK CONSTRAINT [FK_Reservation_Contacts_Reservation]
GO
4

1 に答える 1

2

挿入で contact_id を送信しないでください。これは ID であり、自動生成されます。

于 2013-04-01T19:07:50.860 に答える