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兼容

相关推荐
老葱头蒸鸡1 天前
(8)ASP.NET Core2.2 中的MVC路由一
后端·asp.net·mvc
杨云龙UP1 天前
20250922_(Linux操作系统上)Oracle、MySQL、MariaDB、SQL Server常用连接命令与基础查询
mysql·oracle·sqlserver·mariadb
小志开发1 天前
SQL从入门到起飞:完整学习数据库与100+练习题
数据库·sql·学习·mysql·oracle·sqlserver·navcat
小志开发2 天前
SQL从入门到起飞:完整数据库操作练习
数据库·sql·学习·oracle·sqlserver·navicat
FuckPatience3 天前
ASP.NET Core RazorPages/MVC/Blazor/Razor/WebApi概念记录说明
后端·asp.net
神仙别闹3 天前
基于ASP.NET+SQL Server简单的 MVC 电商网站
log4j·asp.net·mvc
智商偏低13 天前
ASP.NET Core 中的简单授权
后端·asp.net
是萝卜干呀15 天前
IIS 部署 asp.net core 项目时,出现500.19、500.31问题的解决方案
后端·iis·asp.net·hosting bundle
速易达网络17 天前
ASP.NET MVC 连接 MySQL 数据库查询示例
数据库·asp.net·mvc
智商偏低17 天前
ASP.NET Core 身份验证概述
后端·asp.net