Ожидается, что операция базы данных повлияет на 1 строку (строки), но фактически затронула 0 строк ⇐ C#
Ожидается, что операция базы данных повлияет на 1 строку (строки), но фактически затронула 0 строк
Я пытаюсь вставить записи в две таблицы, но получаю исключение. Не могли бы вы помочь мне решить эту проблему.
Сначала я попробовал приведенный ниже код.
await _testRepository.InsertAsync(test); ждут _xyzRepository.InsertAsync(xyz); Затем я попробовал этот код, но у меня ничего не работает.
попробуй { вар тест = новый тест (); используя (var uow = _unitOfWorkManager.Begin(TransactionScopeOption.RequiresNew)) { инт? tenantId = _unitOfWorkManager.Current.GetTenantId(); используя (_unitOfWorkManager.Current.SetTenantId(tenantId)) { ждут _testRepository.InsertAsync(тест); вар xyz = новый XYZ(); ждут _xyzRepository.InsertAsync(xyz); ждут _unitOfWorkManager.Current.SaveChangesAsync(); ожидайте uow.CompleteAsync(); } } } поймать (Исключение ex) { выдать новое исключение UserFriendlyException(ex.Message); } Исключение
Сообщение:
Ожидается, что операция с базой данных повлияет на 1 строку(и), но на самом деле затронула 0 ряд(ы). Данные могли быть изменены или удалены, поскольку объекты были загружен. См. http://go.microsoft.com/fwlink/?LinkId=527962 для получения информации. информация о понимании и управлении оптимистическим параллелизмом исключения.
трассировка стека:
в Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ThrowAggregateUpdateConcurrencyException(Int32 CommandIndex, Int32 ожидаемыйRowsAffected, Int32 rowsAffected) в Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.d__4.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.d__2.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.d__32.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.d__10.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerExecutionStrategy.d__7`2.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.d__61.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.d__59.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.DbContext.d__48.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Abp.EntityFrameworkCore.AbpDbContext.d__49.MoveNext() в D:\Github\aspnetboilerplate\src\Abp.EntityFrameworkCore\EntityFrameworkCore\AbpDbContext.cs:line 214
ИНФО 2018-04-11 13:59:53,439 [3 ] ore.Mvc.Internal.ControllerActionInvoker — Выполнение метода действия MyCompany.MyProject.AdditionalMasterData.Tests.TestsAppService.CreateOrEdit (MyCompany.MyProject.Application) с аргументами ([CreateOrEditTestDto ]) - ModelState действителен WARN 2018-04-11 14:01:48,396 [4 ] Mvc.ExceptionHandling.AbpExceptionFilter — ожидается операция с базой данных чтобы повлиять на 1 строку(и), но фактически затронуло 0 строк(строк). Данные могли быть изменены или удалены с момента загрузки объектов. Видеть http://go.microsoft.com/fwlink/?LinkId=527962 для получения информации о понимание и обработка исключений оптимистического параллелизма. Abp.UI.UserFriendlyException: ожидается, что операция базы данных повлияет на 1 строк, но фактически затронуло 0 строк. Данные могли быть изменены или удалено, поскольку объекты были загружены. Видеть http://go.microsoft.com/fwlink/?LinkId=527962 для получения информации о понимание и обработка исключений оптимистического параллелизма. в MyCompany.MyProject.AdditionalMasterData.Tests.TestsAppService.d__7.MoveNext() в C:\Repo\MyProjectVenues\aspnet-core\src\MyCompany.MyProject.Application\AdditionalMasterData\Tests\TestsAppService.cs:line 205 --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на MyCompany.MyProject.AdditionalMasterData.Tests.TestsAppService.d__6.MoveNext() в C:\Repo\MyProjectVenues\aspnet-core\src\MyCompany.MyProject.Application\AdditionalMasterData\Tests\TestsAppService.cs:line 170 --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__12.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__10.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext контекст) на Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& следующий, Область и область, Объект и состояние, Логическое значение и завершено) в Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__14.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.d__23.MoveNext()
Обновить
У меня есть основная причина проблемы.
По сути, у меня есть триггер вставки в Entity2, и когда я прокомментировал запрос внутри этого триггера, он работает нормально.
В этом триггере около 10 запросов, и очень сложно определить, какой из них вызывает проблему. Не могли бы вы рассказать мне, как отладить этот триггер?
Я пытаюсь вставить записи в две таблицы, но получаю исключение. Не могли бы вы помочь мне решить эту проблему.
Сначала я попробовал приведенный ниже код.
await _testRepository.InsertAsync(test); ждут _xyzRepository.InsertAsync(xyz); Затем я попробовал этот код, но у меня ничего не работает.
попробуй { вар тест = новый тест (); используя (var uow = _unitOfWorkManager.Begin(TransactionScopeOption.RequiresNew)) { инт? tenantId = _unitOfWorkManager.Current.GetTenantId(); используя (_unitOfWorkManager.Current.SetTenantId(tenantId)) { ждут _testRepository.InsertAsync(тест); вар xyz = новый XYZ(); ждут _xyzRepository.InsertAsync(xyz); ждут _unitOfWorkManager.Current.SaveChangesAsync(); ожидайте uow.CompleteAsync(); } } } поймать (Исключение ex) { выдать новое исключение UserFriendlyException(ex.Message); } Исключение
Сообщение:
Ожидается, что операция с базой данных повлияет на 1 строку(и), но на самом деле затронула 0 ряд(ы). Данные могли быть изменены или удалены, поскольку объекты были загружен. См. http://go.microsoft.com/fwlink/?LinkId=527962 для получения информации. информация о понимании и управлении оптимистическим параллелизмом исключения.
трассировка стека:
в Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ThrowAggregateUpdateConcurrencyException(Int32 CommandIndex, Int32 ожидаемыйRowsAffected, Int32 rowsAffected) в Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.d__4.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.d__2.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.d__32.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.d__10.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.Storage.Internal.SqlServerExecutionStrategy.d__7`2.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.d__61.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.d__59.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.EntityFrameworkCore.DbContext.d__48.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Abp.EntityFrameworkCore.AbpDbContext.d__49.MoveNext() в D:\Github\aspnetboilerplate\src\Abp.EntityFrameworkCore\EntityFrameworkCore\AbpDbContext.cs:line 214
ИНФО 2018-04-11 13:59:53,439 [3 ] ore.Mvc.Internal.ControllerActionInvoker — Выполнение метода действия MyCompany.MyProject.AdditionalMasterData.Tests.TestsAppService.CreateOrEdit (MyCompany.MyProject.Application) с аргументами ([CreateOrEditTestDto ]) - ModelState действителен WARN 2018-04-11 14:01:48,396 [4 ] Mvc.ExceptionHandling.AbpExceptionFilter — ожидается операция с базой данных чтобы повлиять на 1 строку(и), но фактически затронуло 0 строк(строк). Данные могли быть изменены или удалены с момента загрузки объектов. Видеть http://go.microsoft.com/fwlink/?LinkId=527962 для получения информации о понимание и обработка исключений оптимистического параллелизма. Abp.UI.UserFriendlyException: ожидается, что операция базы данных повлияет на 1 строк, но фактически затронуло 0 строк. Данные могли быть изменены или удалено, поскольку объекты были загружены. Видеть http://go.microsoft.com/fwlink/?LinkId=527962 для получения информации о понимание и обработка исключений оптимистического параллелизма. в MyCompany.MyProject.AdditionalMasterData.Tests.TestsAppService.d__7.MoveNext() в C:\Repo\MyProjectVenues\aspnet-core\src\MyCompany.MyProject.Application\AdditionalMasterData\Tests\TestsAppService.cs:line 205 --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на MyCompany.MyProject.AdditionalMasterData.Tests.TestsAppService.d__6.MoveNext() в C:\Repo\MyProjectVenues\aspnet-core\src\MyCompany.MyProject.Application\AdditionalMasterData\Tests\TestsAppService.cs:line 170 --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__12.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__10.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow(ActionExecutedContext контекст) на Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Next(State& следующий, Область и область, Объект и состояние, Логическое значение и завершено) в Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.d__14.MoveNext() --- Конец трассировки стека из предыдущего места, где было создано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task задание) на Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.d__23.MoveNext()
Обновить
У меня есть основная причина проблемы.
По сути, у меня есть триггер вставки в Entity2, и когда я прокомментировал запрос внутри этого триггера, он работает нормально.
В этом триггере около 10 запросов, и очень сложно определить, какой из них вызывает проблему. Не могли бы вы рассказать мне, как отладить этот триггер?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение