EFcore8和Sql Server 2014冲突

项目升级到EFCore8之后,所有的Contains方法都报错

报错的linq语句示例:

cs 复制代码
_db.SysModules.Where(x => moduleIds.Contains(x.Id)).AsNoTracking().ToListAsync()

用log4net记录的报错内容如下

ERROR 关键字 'WITH' 附近有语法错误。 关键字 'with' 附近有语法错误。如果此语句是公用表表达式、xmlnamespaces 子句或者更改跟踪上下文子句,那么前一个语句必须以分号结尾。

这是因为EFCore版本太高,SqlServer版本太低。

解决方法:

1、升级SqlServer

2、在DbContext配置项加上以下代码

cs 复制代码
optionsBuilder.LogTo(Console.WriteLine, LogLevel.Information).UseSqlServer(sqlStr, o => o.UseCompatibilityLevel(120)); 

其中最关键的是o => o.UseCompatibilityLevel(120)

可以让EFCore和低版本SqlServer兼容

相关推荐
Vdeilae2 小时前
IIS 让asp.net core 项目一直运行
java·服务器·asp.net
安卓开发者3 小时前
Android JUnit 测试框架详解:从基础到高级实践
android·junit·sqlserver
woflyoycm1 天前
.net6的webapi项目统一封装返回值
c#·asp.net·.net
我来整一篇2 天前
[mssql] 分析SQL Server中执行效率较低的SQL语句
数据库·sql·sqlserver
我来整一篇4 天前
ASP.NET Core中使用NLog和注解实现日志记录
后端·asp.net
ArabySide4 天前
【ASP.NET Core】探讨注入EF Core的DbContext在HTTP请求中的生命周期
后端·http·asp.net·asp.net core·efcore
专注VB编程开发20年5 天前
在VS2022中调试ASP.NET项目时修改DLL或ASPX动态页面的原理及实现方法
后端·云计算·asp.net
王柏龙6 天前
ASP.NET Core MVC中taghelper的ModelExpression详解
后端·asp.net·mvc
不太厉害的程序员8 天前
Excel 将数据导入到SQLServer数据库
数据库·sqlserver·excel
代码老y9 天前
ASP.NET Core 高并发万字攻防战:架构设计、性能优化与生产实践
后端·性能优化·asp.net