Нарушение ошибки первичной ключа по запросу, сгенерированного EF CoreC#

Место общения программистов C#
Ответить
Anonymous
 Нарушение ошибки первичной ключа по запросу, сгенерированного EF Core

Сообщение Anonymous »

I am getting very strange case of primary key violation exception
I have an entity SCH2PlantsiteChemical which has child entity SCH2PlantsiteChemicalProductGroup.
I am trying to create one SCH2PlantsiteChemical with two SCH2PlantsiteChemicalProductGroup in it, and Попытка сохранить сущности, используя ядро ​​Ontity Framework, но я получаю это исключение: < /p>

Нарушение ограничения первичного ключа Невозможно вставить дубликат ключа в объект 'dec.sch2plantsitechemicalproductgroup'. Значение дубликата ключа составляет (4).

Какова странная часть, что, когда я попробовал ее снова, я получаю такую ​​же ошибку, но с первичным значением ключа, как 5 , затем я снова попробовал и получил первичное значение ключа в той ошибке. 18 и затем, когда я попробовал это, это сработало!
довольно странно! То же исключение.

Код: Выделить всё

MERGE [dec].[SCH2PlantsiteChemicalProductGroup]
USING (VALUES (@p143, @p144, @p145, @p146, @p147, @p148, @p149, @p150, 0),
(@p151, @p152, @p153, @p154, @p155, @p156, @p157, @p158, 1)) AS i ([CreatedBy], [CreatedDate], [IsActive], [ProductGroupId], [SCH2PlantsiteChemicalId], [Type], [UpdatedBy], [UpdatedDate], _Position) ON 1=0
WHEN NOT MATCHED THEN
INSERT ([CreatedBy], [CreatedDate], [IsActive], [ProductGroupId], [SCH2PlantsiteChemicalId], [Type], [UpdatedBy], [UpdatedDate])
VALUES (i.[CreatedBy], i.[CreatedDate], i.[IsActive], i.[ProductGroupId], i.[SCH2PlantsiteChemicalId], i.[Type], i.[UpdatedBy], i.[UpdatedDate])
OUTPUT INSERTED.[Id], i._Position;
Я вижу эту вещь _position в запросе, не уверен, что это такое или если это вызывает ее. работает нормально.
Это настройки конфигурации таблицы sch2plantsitechemicalproductgroup , не уверены, что они мешают, однако у меня есть такие настройки во многих моих таблицах, и они работают

Код: Выделить всё

builder.Property(e => e.Id).IsRequired().ValueGeneratedOnAdd();

builder.HasIndex(u => new { u.SCH2PlantsiteChemicalId, u.ProductGroupId, u.Type }).IsUnique().HasFilter("[IsActive] = 1");
Есть лиды?

Подробнее здесь: https://stackoverflow.com/questions/796 ... by-ef-core
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»