.NET Core API: неверное имя столбца «__roleName_0» при обновлении до EF Core 3.1 в контейнере докеров, работающем на вирC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 .NET Core API: неверное имя столбца «__roleName_0» при обновлении до EF Core 3.1 в контейнере докеров, работающем на вир

Сообщение Anonymous »

Некоторый контекст проблемы:

Недавно мы обновили версию 2.2 до .NET Core 3.1, а вместе с ней также обновились до EF Core. 3.1 из 2.2, и есть несколько API, которые не работают или имеют какие-то странные проблемы, которых не было до сих пор. Мне нужна помощь в понимании таких проблем и их устранении.

Некоторые замечания:
  • Проблема не возникает, если я понижаю версию EF Core 3.1 до 2.2
  • Проблема не возникает при локальном тестировании API, она возникает появляется только при развертывании API.
  • Для развертывания мы используем Docker-контейнер на виртуальной машине Linux. Ниже я поделился файлом Docker с другими подробностями.
Описание
Тип ошибки: SqlException
Сообщение об ошибке: неверное имя столбца «__roleName_0»

public async Task[*]> GetUsersAsync(string roleName, int offset, int? limit)
{
var query = _dbContext.UserView.AsNoTracking().Where(u => u.UserRole.Any(ur => ur.Role.Name == roleName));

var userResult = await query.ToListAsync();

return userResult;
}


Как вы можете видеть в функции GetUsersAsync, она имеет одну операцию с базой данных:
  • Получить пользователей, отфильтрованных по предикату, принадлежащему этой роли.
Вот сгенерированный SQL-запрос из наших журналов для следующего: операции:

Отфильтруйте пользователей по предикату, принадлежащему этой роли.

Executed DbCommand (177ms) [Parameters=[@__roleName_0='?' (Size = 4000)]


SELECT
FROM
(
SELECT
FROM [V_User] AS [v]
WHERE (EXISTS (
SELECT 1
FROM [UserRole] AS
INNER JOIN [Role] AS [r] ON .[RoleId] = [r].[Id]
WHERE [v].[Id] = .[UserProfileId]) AND ([r].[Name] = @__roleName_0)
)


По какой-то причине EF Core воспринимает параметр __roleName_0 как столбец, что, по-видимому, и является проблемой. Мы попробовали несколько ресурсов, включая чтение информации об ошибках. изменения, внесенные в EF Core 3.0/3.1, но не удалось выяснить причину этой проблемы. Пожалуйста, помогите.

Другие технические подробности:








Dockerfile:

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1.2 AS base
WORKDIR /app
EXPOSE 80

FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build
WORKDIR /src
COPY /.csproj /
RUN dotnet restore /.csproj
COPY . .
WORKDIR /src/
RUN dotnet build .csproj -c Release -r ubuntu.16.04-x64 -f netcoreapp3.1 -o /app

FROM build AS publish
RUN dotnet publish .csproj -c Release -r ubuntu.16.04-x64 -f netcoreapp3.1 --self-contained -o /app

FROM base AS final
WORKDIR /app
COPY --from=publish /app .
ENTRYPOINT ["dotnet", ".dll"]


Подробнее здесь: https://stackoverflow.com/questions/621 ... ore-3-1-on
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Ошибка Bad Gateway (502) при вызове API Core Core .NET .NET из другого API Core .NET .NET .NET .NET
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Ошибка CORS при обновлении страницы в приложении .NET, работающем в IIS
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Ошибка CORS при обновлении страницы в приложении .NET, работающем в IIS
    Anonymous » » в форуме C#
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Добавление xdebug в мой файл докеров php apache приводит к сбою контейнера докеров
    Anonymous » » в форуме Php
    0 Ответы
    130 Просмотры
    Последнее сообщение Anonymous

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