流利的迁移候选键

时间:2018-06-08 15:11:40

标签: ef-migrations fluent-migrator

我有两个表名为“Root”,其中包含IdRootNumber列,其中Id是主键。

现在,当我尝试使用RootNumber作为外键创建另一个表时,我得到以下错误

  

InnerException {“中没有主键或候选键   引用的表'dbo.Root'与引用列列表匹配   外键(“FK_CNTR_Root”,\ r \ n不能创建约束或   指数。请参阅先前的错误。“} System.Exception   {System.Data.SqlClient.SqlException}

 this.CreateTableWithId32("CNTR", "Id", s => s
            .WithColumn("CNTRNumber").AsString(10).NotNullable()
           .WithColumn("CNTRName").AsString(10).NotNullable()

            .WithColumn("RootNum").AsInt32().NotNullable()
                .ForeignKey("FK_CNTR_Root", "Root", "RootNumber")

1 个答案:

答案 0 :(得分:0)

错误很明显。您只能将PrimaryKey列作为另一个表中的ForeignKey引用。因此,要么将Id作为其他表中的外键,要么将RootNumber更改为Root表的PrimaryKey。

请参阅此基本Foreign Key定义。