У меня есть веб-приложение для малого бизнеса, которое я создаю на ASP. NET Core 3.1, также используя EF Core 3.1. В настоящее время где-то в обработке проверки есть ошибка, которая вызывает исключение SqlException, в котором указано следующее:
SqlException: оператор INSERT конфликтует с ограничением FOREIGN KEY «FK_OrderDetails_Orders_OrderId». Конфликт произошел в базе данных «BethanysPieShop», таблица «dbo.Orders», столбец «OrderId».
Когда я просматриваю таблицы в Sql Server Object Explorer, я обнаруживаю, что столбец OrderId в таблице dbo. Заказы - это первичный ключ, и в таблице dbo.OrderDetails существует следующее ограничение:
CONSTRAINT [FK_OrderDetails_Orders_OrderId] FOREIGN KEY ([OrderId]) REFERENCES [dbo].[Orders] ([OrderId]) ON DELETE CASCADE
Столбцы в таблице dbo.OrderDetails выглядят следующим образом:
[OrderDetailId] INT IDENTITY (1, 1) NOT NULL,
[OrderId] INT NOT NULL,
[PieId] INT NOT NULL,
[Amount] INT NOT NULL,
[Price] DECIMAL (18, 2) NOT NULL,
После проведя некоторое исследование, кажется, что данные, вставленные в столбец OrderId в dbo.Orders, должны быть такими же, как данные, вставленные в столбец OrderId в dbo.OrderDetails. Однако я не уверен, как это отладить и проверить, какие данные и куда вставляются во время выполнения. Даже если бы мне удалось найти эти данные, я все равно не знал бы, как решить проблему и избавиться от ошибки.
Если вам нужно больше деталей или кода, обязательно сообщите я знаю.