У меня есть модель ниже.Удаление отношений «многие ко многим» в Entity Framework вызывает ошибку
Я пытаюсь удалить данную ProductType, связанный с ActivityType; Но когда я пытаюсь инициировать удаление с помощью моих общих методов, это не только удаление отношений, но и попытка удалить ProductType! с первичным ключом Zero в аргументе where, вызывающим erorr
«Заявление о сохранении, вставке или удалении повлияло на неожиданное количество строк (0). Объекты могут быть изменены или удалены с момента загрузки объектов. Записи ObjectStateManager. "
код для удаления ниже;
public void DeleteEntityAndSaveChanges<T, T1>(T entity, List<T1> subEntities)
where T : class
where T1 : class
{
Set<T>().Attach(entity);
DeleteEntitiesAndSaveChanges(subEntities);
}
public void DeleteEntitiesAndSaveChanges<T>(List<T> entities) where T : class
{
foreach (var entity in entities)
{
Set<T>().Attach(entity);
Set<T>().Remove(entity);
}
SaveChanges();
}
Использование:
DbContext.DeleteEntityAndSaveChanges(request.ActivityType, request.ActivityType.ProductTypes);
Это SQL, то будет генерируется:
exec sp_executesql N'delete [dbo].[ProductTypeActivityTypes]
where (([ProductType_ProductTypeId] = @0) and ([ActivityType_EntityObjectId] = @1))',N'@0 bigint,@1 bigint',@0=1,@1=20
Это виновный SQL, который не хотят разослал, но в настоящее время генерируемое EF:
Exec sp_executesql N'delete [DBO]. [ProductTypes] где (([ProductTypeId] = @ 0) и [TimeStamp] равно нулю)», N '@ 0 BIGINT', @ 0 = 1
любые идеи относительно того, как я могу заставить его только удалить отношения?
Cheers.