AutoMapper неправильно сериализует DTOC#

Место общения программистов C#
Ответить
Anonymous
 AutoMapper неправильно сериализует DTO

Сообщение Anonymous »

Я использую полиморфизм, DTO и AutoMapper для вставки производственных оповещений, но запись не распознается во время процесса вставки

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

public async Task CreateAlertAsync(AlertDTO alertDto)
{
if (alertDto == null)
{
throw new ArgumentNullException(nameof(alertDto), "Alert DTO cannot be null.");
}

Alert alert = alertDto.AlertTypesId switch
{
AlertTypes.InfoAlert => _mapper.Map(alertDto) as Alert,
AlertTypes.EventAlert => _mapper.Map(alertDto) as Alert,
AlertTypes.ProcessAlert => _mapper.Map(alertDto) as Alert,
AlertTypes.ManufacturingAlert => _mapper.Map(alertDto) as Alert,
_ => throw new ArgumentOutOfRangeException(nameof(alertDto.AlertTypesId), "Invalid alert type"),
};

var addedAlertType = await _alertRepository.AddAsync(alert);
return addedAlertType;
}
Без использования DTO процесс создания работает идеально и распознает производный класс и тип. Однако при использовании DTO они не распознаются, а включение значений NULL приводит к вставке пустых записей в производный класс, например Operational

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

 public class Alert
{
public int Id { get; set; }
public int TypeId { get; set; }
public AlertTypes Category { get; set; }
public int CreatorId { get; set; }
public string Name { get; set; }
public string Title { get; set; }

public int TemplateRefId { get; set; }
public int DepartmentId { get; set; }
public bool IsProcessChanged { get; set; }
public bool? IsPermanent { get; set; }
public virtual Department? Department { get; set; }
public virtual User? Creator { get; set; }
public virtual AlertType? Type { get; set; }
public virtual Template? Template { get; set; }
public int ChangeDetailId { get; set; }
public virtual ChangeDetail? ChangeDetail { get; set; }
public virtual ICollection? AlertRecipients { get; set; }
public virtual ICollection? AlertAttachments { get; set; }
public virtual ICollection? AlertUpdates { get; set; }
public virtual ICollection? LogEntries { get; set; }
public virtual ICollection? OperationDetails { get; set; }
}

public enum AlertTypes
{
AlertInformational = 1,
AlertIncident = 2,
AlertProcessDeviation = 3,
AlertOperational = 4
}
Класс оповещения:

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

using System.Collections.Generic;

namespace YourNamespace.Alerting.Domain.Model.Dto
{
public class AlertDTO
{
public int Id { get; set; }
public int TypeId { get; set; }
public AlertCategory Category { get; set; }
public int CreatorId { get; set; }
public string UserName { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int TemplateRefId { get; set; }
public int DepartmentId { get; set; }
public bool IsProcessChanged { get; set; }
public bool? IsPermanent { get; set; }
public virtual ICollection? Recipients { get; set; }
public virtual ICollection? Updates { get; set; }
public virtual ICollection? Attachments { get; set; }
public virtual ICollection? Operations { get; set; }
public virtual ICollection? Logs { get; set; }
public int ChangeDetailId { get; set; }
}

public class ChangeDetailDto
{
public int Id { get; set; }
public string Name { get; set; }
}

public class RecipientDto
{
public int AlertId { get; set; }
public int RecipientId { get; set; }
}

public class UpdateDto
{
public int Id { get; set; }
public string Message { get; set; }
public int AlertId { get; set; }
public int TypeId { get; set; }
}
}
вот мой класс OperationalAlert

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

 public class OperationalAlert : Alert
{
public AlertState State { get; set; }
public UrgencyLevel Urgency { get; set; }
public bool IsEnabled { get; set; }
public DateTime CreatedOn { get; set; }
public string Content { get; set; }
public DateTime ExpiresOn { get; set; }
public string Location { get; set; }
public string MessageContent { get; set; }
public string Description { get; set; }
public DateTime OccurrenceTime { get; set; }
public string Method { get; set; }
public string Reason { get; set; }
public virtual ICollection? Revisions { get; set; }
}

public enum AlertState
{
Active,
Inactive,
Expired,
Pending,
Resolved
}

public enum UrgencyLevel
{
Low,
Medium,
High,
Critical
}
вот dto оповещения о продукте:

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

 public class OperationalAlertDto : AlertDTO
{
public int Id { get; set; }
public string Title { get; set; }
public AlertState State { get; set; }
public UrgencyLevel Urgency { get; set;  }
public bool IsEnabled { get; set; }
public string Content { get; set; }
public DateTime CreatedOn { get; set; }
public DateTime ExpiresOn { get; set; }
public string Description { get; set; }
public DateTime OccurrenceTime { get; set; }
public string Method { get; set; }
public string Reason { get; set; }
public string Location { get; set; }
public string MessageContent { get; set; }

public List? Revisions { get; set; }
}

public class OperationalAlertRevisionDto
{
public int RevisionId { get; set; }
public bool IsCurrent { get; set; }
public int AlertId { get; set; }
public int AlertTypeId { get; set; }
}
У меня нет недостающих элементов в конфигурации AutoMapper, то есть я сопоставил все, что я использую в примере, чтобы выделить здесь.

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

  public AutoMapperProfile()
{
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap();

CreateMap()
.IncludeBase();

CreateMap();
CreateMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();

CreateMap()
.ForMember(dest => dest.UserName, opt => opt.MapFrom(src => src.user != null ? src.user.UserName : null))
.Include()
.ReverseMap();

CreateMap
().ReverseMap();
CreateMap().ReverseMap();
CreateMap().ReverseMap();
}
вот мое определение декриминатора:

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

builder.Services.AddControllers()
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
options.SerializerSettings.Converters.Add(
JsonSubtypesConverterBuilder
.Of(typeof(Alert), nameof(Alert.AlertTypesId))
.RegisterSubtype(typeof(AlertInformational), AlertTypes.Informational)
.RegisterSubtype(typeof(AlertIncident), AlertTypes.Incident)
.RegisterSubtype(typeof(OperationalAlert), AlertTypes.Operational)
.SerializeDiscriminatorProperty()
.Build());
});
options.UseAllOfToExtendReferenceSchemas();
options.UseAllOfForInheritance();
options.UseOneOfForPolymorphism();
options.SelectDiscriminatorNameUsing(type =>
{
return type.Name switch
{
nameof(Alert) => "AlertTypeId",
_ => null
};
});
ошибка, с которой я столкнулся:

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

Microsoft.EntityFrameworkCore.Update[10000]
An exception occurred in the database while saving changes for context type 'alertapp_Alerting.Persistence.Context.alertappAlertingDbContext'.
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes.  See the inner exception for details.
---> MySqlConnector.MySqlException (0x80004005): Column 'Content' cannot be null
at MySqlConnector.Core.ServerSession.ReceiveReplyAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/ServerSession.cs:line 894
at MySqlConnector.Core.ResultSet.ReadResultSetHeaderAsync(IOBehavior ioBehavior) in /_/src/MySqlConnector/Core/ResultSet.cs:line 37
at MySqlConnector.MySqlDataReader.ActivateResultSet(CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 130
at MySqlConnector.MySqlDataReader.NextResultAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 90
at MySqlConnector.MySqlDataReader.NextResultAsync(CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 49
at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(RelationalDataReader reader, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(RelationalDataReader reader, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes.  See the inner exception for details.
---> MySqlConnector.MySqlException (0x80004005): Column 'Content' cannot be null
at MySqlConnector.Core.ServerSession.ReceiveReplyAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/ServerSession.cs:line 894
at MySqlConnector.Core.ResultSet.ReadResultSetHeaderAsync(IOBehavior ioBehavior) in /_/src/MySqlConnector/Core/ResultSet.cs:line 37
at MySqlConnector.MySqlDataReader.ActivateResultSet(CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 130
at MySqlConnector.MySqlDataReader.NextResultAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 90
at MySqlConnector.MySqlDataReader.NextResultAsync(CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 49
at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(RelationalDataReader reader, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(RelationalDataReader reader, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
fail: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware[1]
An unhandled exception has occurred while executing the request.
System.InvalidOperationException: An error occurred while adding the alert and sending the email.
---> Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes.  See the inner exception for details.
---> MySqlConnector.MySqlException (0x80004005): Column 'Content' cannot be null
at MySqlConnector.Core.ServerSession.ReceiveReplyAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/ServerSession.cs:line 894
at MySqlConnector.Core.ResultSet.ReadResultSetHeaderAsync(IOBehavior ioBehavior) in /_/src/MySqlConnector/Core/ResultSet.cs:line 37
at MySqlConnector.MySqlDataReader.ActivateResultSet(CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 130
at MySqlConnector.MySqlDataReader.NextResultAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 90
at MySqlConnector.MySqlDataReader.NextResultAsync(CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 49
at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(RelationalDataReader reader, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(RelationalDataReader reader, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at alertapp_Alerting.Persistence.Repositories.AlertRepository.AddAsync(Alert alert) in C:\Users\e10133604\Desktop\alertappalertingapi\alertapp-Alerting\Persistence\Repositories\AlertRepository.cs:line 47
--- End of inner exception stack trace ---
at alertapp_Alerting.Persistence.Repositories.AlertRepository.AddAsync(Alert alert) in C:\Users\e10133604\Desktop\alertappalertingapi\alertapp-Alerting\Persistence\Repositories\AlertRepository.cs:line 54
at alertapp_Alerting.Services.AlertService.CreateAlertAsync(AlertDTO alertDto) in C:\Users\e10133604\Desktop\alertappalertingapi\alertapp-Alerting\Services\AlertService.cs:line 83
at alertapp_Alerting.Controllers.AlertController.CreateAlertWithFile(AlertDTO alert) in C:\Users\e10133604\Desktop\alertappalertingapi\alertapp-Alerting\Controllers\AlertController.cs:line 52
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean&  isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddlewareImpl.g__Awaited|10_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
fail: alertapp_Alerting.Exceptions.GeneralExceptionHandler[0]
Something went wrong..
System.InvalidOperationException: An error occurred while adding the alert and sending the email.
---> Microsoft.EntityFrameworkCore.DbUpdateException: An error occurred while saving the entity changes.  See the inner exception for details.
---> MySqlConnector.MySqlException (0x80004005): Column 'Content' cannot be null
at MySqlConnector.Core.ServerSession.ReceiveReplyAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/Core/ServerSession.cs:line 894
at MySqlConnector.Core.ResultSet.ReadResultSetHeaderAsync(IOBehavior ioBehavior) in /_/src/MySqlConnector/Core/ResultSet.cs:line 37
at MySqlConnector.MySqlDataReader.ActivateResultSet(CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 130
at MySqlConnector.MySqlDataReader.NextResultAsync(IOBehavior ioBehavior, CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 90
at MySqlConnector.MySqlDataReader.NextResultAsync(CancellationToken cancellationToken) in /_/src/MySqlConnector/MySqlDataReader.cs:line 49
at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(RelationalDataReader reader, CancellationToken cancellationToken)
--- End of inner exception stack trace ---
at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(RelationalDataReader reader, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
at alertapp_Alerting.Persistence.Repositories.AlertRepository.AddAsync(Alert alert) in C:\Users\e10133604\Desktop\alertappalertingapi\alertapp-Alerting\Persistence\Repositories\AlertRepository.cs:line 47
--- End of inner exception stack trace ---
at alertapp_Alerting.Persistence.Repositories.AlertRepository.AddAsync(Alert alert) in C:\Users\e10133604\Desktop\alertappalertingapi\alertapp-Alerting\Persistence\Repositories\AlertRepository.cs:line 54
at alertapp_Alerting.Services.AlertService.CreateAlertAsync(AlertDTO alertDto) in C:\Users\e10133604\Desktop\alertappalertingapi\alertapp-Alerting\Services\AlertService.cs:line 83
at alertapp_Alerting.Controllers.AlertController.CreateAlertWithFile(AlertDTO alert) in C:\Users\e10133604\Desktop\alertappalertingapi\alertapp-Alerting\Controllers\AlertController.cs:line 52
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfIActionResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean&  isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
Мне нужна помощь с этим....

Подробнее здесь: https://stackoverflow.com/questions/790 ... -correctly
Ответить

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

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

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

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

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