Не понимаю, почему ядро EF показывает случайность при добавлении сущности в базу данных. код ранее выполнялся на ядре 2.2 и сталкивался с проблемой после переноса ядра 3.3 Библиотека классов DBcontext (AMLQuery) находится в netstandard2.0. Я пытаюсь вставить объект из WebApi, имеющий netcoreapp3.1. Проблема возникает только при развертывании приложения в docker. Иногда он может вставить данные, но в большинстве случаев не удается (с тем же набором данных). в основном сталкивается с проблемой, когда размер данных для вставки больше. при попытке вставить сущность, просто не получая никаких исключений, и система зависает! В Localhost он ведет себя как и ожидалось с тем же набором данных! Я попытался решить эту проблему с помощью решения ниже, но это не сработало. https://github.com/dotnet/SqlClient/issues/222
Пожалуйста, найдите нижеприведенный код, где я пытаюсь добавить сущность и файл docker! ---------------------- Docker Файл ------------------------ ----------------------
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app/Finomial.AMLIntegration.WebApi
RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /etc/ssl/openssl.cnf
#RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1/g' /etc/ssl/openssl.cnf
RUN sed -i 's/DEFAULT@SECLEVEL=2/DEFAULT@SECLEVEL=1/g' /usr/lib/ssl/openssl.cnf
#RUN sed -i 's/MinProtocol = TLSv1.2/MinProtocol = TLSv1/g' /usr/lib/ssl/openssl.cnf
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ./ ./
RUN dotnet restore "Finomial.AMLIntegration/Finomial.AMLIntegration.WebApi/Finomial.AMLIntegration.WebApi.csproj"
COPY . .
RUN dotnet build "Finomial.AMLIntegration/Finomial.AMLIntegration.WebApi/Finomial.AMLIntegration.WebApi.csproj" -c Release -o /src/out
FROM build AS publish
RUN dotnet publish "Finomial.AMLIntegration/Finomial.AMLIntegration.WebApi/Finomial.AMLIntegration.WebApi.csproj" -c Release -o /src/out
FROM base AS final
WORKDIR /src
COPY --from=build /src/out .
ENTRYPOINT ["dotnet", "Finomial.AMLIntegration.WebApi.dll"]
------------------ Добавление Сущности в БД ----------------------------------
private async Task CreateAMLQuery(AMLQueryModel amlQueryModel)
{
try
{
_logger.LogInformation("inserting AMLQuery to Database ");
var amlQuery = _mapper.Map<AMLQuery>(amlQueryModel);
await _context.AMLQueries.AddAsync(amlQuery);
await _context.SaveChangesAsync();
_logger.LogInformation("insertion AMLQuery to Database completed");
return;
}
catch (Exception e)
{
_logger.LogError("Error Details : {@Message}", e.Message);
throw e;
}
}