提问人:Rafael Alfredo Zelaya Amaya 提问时间:8/11/2022 最后编辑:Rafael Alfredo Zelaya Amaya 更新时间:8/11/2022 访问量:100
OFFSET sql 和 EF 跳过 IIS 7.5 与 win server 2008 R2 不兼容
OFFSET sql and EF Skip no compatibility in IIS 7.5 with win server 2008 R2
问:
在装有 Windows 11 的本地计算机 visual studio 2022 中,我创建了一个项目 API REST,并且对数据库有一个请求,如下所示
result = await appDb.table
.Skip(data.Index)
.Where(something here)
.Take(data.NumberToTake)
.ToListAsync();
它在我的本地计算机上工作正常,但是当我将代码发布到我的 IIS 7.5 Windows Server 2008 R2 时,出现以下错误:
Microsoft.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near 'OFFSET'.
at Microsoft.Data.SqlClient.SqlCommand.<>c.<ExecuteDbDataReaderAsync>b__188_0(Task`1 result)
at System.Threading.Tasks.ContinuationResultTaskFromResultTask`2.InnerInvoke()
at System.Threading.Tasks.Task.<>c.<.cctor>b__272_0(Object obj)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
如果我更改代码并删除跳过命令,它效果很好。我知道问题出在版本上,但我不知道如何获取使用 IIS 7.5 的 .net core 版本(前段时间我安装了一个捆绑包以允许运行 asp.net Core 项目,但不知道哪个版本实际运行)或者可能是其他东西。
编辑: 这是我安装的用于运行 .net core 的捆绑包: https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/runtime-aspnetcore-6.0.4-windows-hosting-bundle-installer
我能做些什么吗?
答:
0赞
Rafael Alfredo Zelaya Amaya
8/11/2022
#1
最后,我所做的是:
Result = await appDb.Table
.Where(...)
//.Skip(data.Index)
//.Take(data.NumberToTake)
.ToListAsync();
Result = Result.Skip(data.Index).Take(data.NumberToTake).ToList();
效率低下,但在我找到更好的方法之前,这目前有效。
评论
OFFSET
110