在docker容器中设置ENV LC_ALL和LANG时无法使用Entity Framework Core 3.1

问题描述

现在,我在.NET Core v3.1中使用EF Core v3.1.7。

我尝试在我的docker文件添加以下两行

ENV LANG th_TH.UTF-8  
ENV LANGUAGE th_TH:th 

这两行配置使我的报告可以在.NET Core v2.1中正确生成语言。

使用lib reportserverMicrosoft.VisualStudio.ConnectedService.Wcf v15.0.40203.910)

但是当我迁移到.NET Core 3.1并设置2个env变量时,无法使用此代码查询Entity Framework Core 2.1

var userLogedIn = await _uow.User.Where(w => w.empNo == dataEmpNo).AsNoTracking().FirstOrDefaultAsync();

我总是得到一个错误

Microsoft.Data.sqlClient.sqlException
无效的列名'__dataEmpNo_0'

在Microsoft.Data.sqlClient.sqlCommand。 c.b__164_0(任务1 result) at System.Threading.Tasks.ContinuationResultTaskFromresultTask 2.InnerInvoke() 在System.Threading.Tasks.Task中。 c。 b__274_0(Object obj)
在System.Threading.ExecutionContext.RunInternal处(ExecutionContext执行上下文,ContextCallback回调,对象状态)
---从先前引发异常的位置开始的堆栈结束跟踪

在System.Threading.ExecutionContext.RunInternal(ExecutionContext执行上下文,ContextCallback回调,对象状态)
在System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task&currentTaskSlot,Thread threadPoolThread)
---从之前引发异常的位置开始的堆栈跟踪---

在Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject,CancellationToken cancelToken)处的

>在Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject,CancellationToken cancelToken)处的

RelationalCommandParameterObject parameterObject,CancellationToken cancelToken) 在Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable 1.AsyncEnumerator.InitializeReaderAsync(DbContext _,Boolean result,CancellationToken cancellationToken)\n at Microsoft.EntityFrameworkCore.sqlServer.Storage.Internal.sqlServerExecutionStrategy.ExecuteAsync[TState,TResult](TState state,Func 4操作中,Func 4 verifySucceeded,CancellationToken cancellationToken)\n at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable 1.AsyncEnumerator.MoveNextAsync()\ n在Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync [TSource](IQueryable {{1} } 1个来源,位于//Services/UserService.cs:第256行的KPS.CAP.API.Services.UserService.Token(RequestUserLoginModel usermodel)上的CancellationToken cancelToken)\ n在//Controllers/UsersController.cs:line 82

中的KPS.CAP.API.Controllers.UsersController.Token(RequestUserLoginModel userParam,String q)中

当我尝试将var 1 source,CancellationToken cancellationToken)\n at Microsoft.EntityFrameworkCore.EntityFrameworkQueryableExtensions.ToListAsync[TSource](IQueryable更改为其他名称时,它将更改错误消息

无效的列名'__dataEmpNo_0'

也跟随我的变量名。

但是当我删除ENV LC_ALL并且LANG Entity Framework正常工作时。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)