Ключ-кандидат Fluent Migrate - PullRequest
0 голосов
/ 08 июня 2018

У меня есть две таблицы Одна с именем «Root», в которой есть столбцы Id, RootNumber, в которых 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 голосов
/ 09 июня 2018

Ошибка очень ясна.Вы можете сделать только столбец PrimaryKey, который будет ссылаться как ForeignKey в другой таблице.Так что либо сделайте Id внешним ключом в другой таблице, либо измените RootNumber на PrimaryKey таблицы Root.

См. Это базовое определение внешний ключ .

...