一对一关系不设置主键

时间:2014-09-03 23:48:22

标签: entity-framework linqpad

我有一个架构,其中Table1有一个主要的自动增量标识密钥,而Table2有一个主键,其FK约束等于Table1主键。

架构是:

 CREATE TABLE [dbo].[Table1](
     [Key] [bigint] IDENTITY(1,1) NOT NULL,
     [Value] [nvarchar](max) NOT NULL,
 CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED 
 (
     [Key] ASC
 )

 CREATE TABLE [dbo].[Table2](
     [Key] [bigint] NOT NULL,
     [Value] [nchar](10) NOT NULL,
 CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED 
 (
     [Key] ASC
 )

ALTER TABLE [dbo].[Table2]  WITH CHECK ADD  CONSTRAINT [FK_Table2_Table1] FOREIGN KEY([Key])
REFERENCES [dbo].[Table1] ([Key])

代码是:

void Main()
{
    var table1 = new Table1 
    {
        Value = "table1",

        Table2 = new Table2
        {
            Value = "table2",
        }
    };

    Table1.InsertOnSubmit(table1);

    SubmitChanges();
}

然后执行插入并保存它,抱怨Table2无法插入重复的外键。

我猜测它没有使用Table1插入的返回值设置Table2中的主键值,我无法弄清楚如何在不进行两次单独调用的情况下执行此操作。

0 个答案:

没有答案