Я создавал систему управления контентом на ABP, используя entityframework и .net core.Я получаю исключение параллелизма при использовании InsertOrUpdateAsync.У меня нет данных в моей таблице.
Пожалуйста, найдите модель, использованную для создания таблицы.
[Table("CMSContents")]
public class CMSContent:Entity<int>
{
public const int MAXTITLELENGHT = 128;
public const int MAXCONTENTLENGTH = 10000;
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public override int Id { get; set; }
/// <summary>
/// The title of the content.
/// </summary>
[Required]
[StringLength(MAXTITLELENGHT)]
public virtual string PageName { get; set; }
/// <summary>
/// The Cms Content
/// </summary>
public virtual string PageContent { get; set; }
protected CMSContent()
{
}
public static CMSContent CreateContent(int id,string title ,string contents)
{
var @content = new CMSContent
{
Id = id,
PageName = title,
PageContent = contents
};
return @content;
}
}
}
Ниже приведена служба приложений, используемая для вызова хранилища.
public async Task<CMSContent> InsertOrUpdateCMSContent(CreateContentInput input)
{
var @content = CMSContent.CreateContent(input.Id,input.PageName, input.PageContent);
return await _contentManager.InsertOrUpdateAsync(@content);
}
Исключительная ситуация при вызове этого API из Swagger,
Mvc.ExceptionHandling.AbpExceptionFilter - Предполагается, что операция с базой данных затронет 1 строку (и), но фактически затронет 0 строк.Данные могут быть изменены или удалены, так как объекты были загружены.См. http://go.microsoft.com/fwlink/?LinkId=527962 для получения информации о понимании и обработке исключений оптимистичного параллелизма.Abp.Domain.Uow.AbpDbConcurrencyException: ожидается, что операция с базой данных затронет 1 строку (и), но фактически затронет 0 строк.Данные могут быть изменены или удалены, так как объекты были загружены.См. http://go.microsoft.com/fwlink/?LinkId=527962 для получения информации о понимании и обработке исключений оптимистичного параллелизма.---> Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException: ожидается, что операция с базой данных повлияет на 1 строку (и), но фактически затронула 0 строк.Данные могут быть изменены или удалены, так как объекты были загружены.См. http://go.microsoft.com/fwlink/?LinkId=527962 для получения информации о понимании и обработке исключений оптимистичного параллелизма.на Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ThrowAggregateUpdateConcurrencyException (Int32 commandIndex, Int32, Int32 expectedRowsAffected rowsAffected) в Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeResultSetWithoutPropagationAsync (Int32 commandIndex, RelationalDataReader читателя, CancellationToken CancellationToken) в Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(Читатель RelationalDataReader, CancellationToken cancellationToken) в Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync (соединение IRelationalConnection, CancellationToken cancellationToken) в Microsoft.EntityFramework * *.* 1 recordsToSave, CancellationToken cancellationToken) в Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync (Boolean acceptAllChangesOnSuступа, CancellationToken CancellationToken) при Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync (булево acceptAllChangesOnSuccess, CancellationToken CancellationToken) при Abp.EntityFrameworkCore.AbpDbContext.SaveChangesAsync (CancellationToken CancellationToken) в D: \ Github \ aspnetboilerplate \ SRC \ Abp.EntityFrameworkCore \ EntityFrameworkCore \ AbpDbContext.cs: строка 224 --- Конец трассировки стека внутренней исключительной ситуации --- в Abp.EntityFrameworkCore.AbpDbContext.SaveChangesAsync (CancellationToken cancellationToken) в D: \ Github \ aspnetboilerplate \ src \ Abp.EntityFrameworkCore \ 230. EntityForec.deat Abp.Zero.EntityFrameworkCore.AbpZeroCommonDbContext`3.SaveChangesAsync (CancellationToken cancellationToken) в D: \ Github \ aspnetboilerplate \ src \ Abp.ZeroCore.EntityFrameworkCoreForeCoreEOFC.SaveChangesInDbContextAsync (DbContext dbContext) в D: \ Github \ aspnetboilerplate \ src \ Abp.EntityFrameworkCore \ EntityFrameworkCore \ Uow \ EfCoreUnitOfWork.cs: строка 167 в Abp.EntityFrameworkCore.Uow.EfCoreUnitOfWork.SaveChangesAsync () в D: \ Github \ aspnetboilerplate \ src \ Entry EworkEF.EntityFrameworkCore.Uow.EfCoreUnitOfWork.CompleteUowAsync () в D: \ Github \ aspnetboilerplate \ src \ Abp.EntityFrameworkCore \ EntityFrameworkCore \ Uow \ EfCoreUnitOfWork.Un.Github \ aspnetboilerplate \ src \ Abp \ Domain \ Uow \ UnitOfWorkBase.cs: строка 273в Abp.AspNetCore.Mvc.Uow.AbpUowActionFilter.OnActionExecutionAsync (контекст ActionExecutingContext, далее ActionExecutionDelegate) в D: \ Github \ aspnetboilerplate \ src \ Abp.AspNetCore \ AspNetCore \ Ab.Net.ore.Sec.Mvc.Internal.ControllerActionInvoker.InvokeNextActionFilterAsync () в Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker.Rethrow (контекст ActionExecutedContext)