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

相关推荐
杰哥技术分享13 小时前
Ubuntu 22.04安装SQL Server指南
linux·运维·ubuntu·sqlserver
神仙别闹2 天前
基于ASP.NET MVC+SQLite开发的一套(Web)图书管理系统
sqlite·asp.net·mvc
神仙别闹2 天前
基于ASP.NET+SQL Server实现(Web)企业进销存管理系统
前端·后端·asp.net
Favor_Yang2 天前
SQL Server通过存储过程调用DLL程序集发送飞书卡片消息
sqlserver·飞书·存储过程
Favor_Yang3 天前
SQL Server通过存储过程实现HTML页面生成
前端·信息可视化·sqlserver·存储过程
咖丨喱3 天前
【Action帧简要分析】
服务器·数据库·asp.net
发粪的屎壳郎3 天前
ASP.NET Core 8 轻松配置Serilog日志
后端·asp.net·serilog
程序员秘密基地5 天前
基于html,css,vue,vscode,vs2022,asp.net,aspnet,.net,c#,mysql数据库,在线健身,俱乐部管理系统
前端·vue.js·后端·mysql·asp.net
wstcl5 天前
让你的asp.net网站在调试模式下也能在局域网通过ip访问
后端·tcp/ip·asp.net
贾修行6 天前
SQL Server 空间函数从入门到精通:原理、实战与多数据库性能对比
数据库·sqlserver