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

相关推荐
满昕欢喜16 小时前
回顾与总结
数据库·sqlserver
wenha2 天前
数据库隔离级别
数据库·mysql·sqlserver·隔离级别
~小先生~2 天前
sqlserver 外键、级联使用
数据库·sqlserver
Mr_pyx2 天前
Java 注解(Annotation)详解:从基础到 APT 实战
java·数据库·sqlserver
风口旁的猪4 天前
一套可落地的 .NET 8 微服务/分布式工程实践
docker·consul·.net core·efcore·refit
弱水三千 只取一瓢饮6 天前
sqlserver 从数据库A的备份文件,还原到数据库B中
数据库·sqlserver
医疗信息化王工6 天前
基于ASP.NET Core的医院不良事件管理系统的架构设计
后端·asp.net
百锦再6 天前
时序数据库选型指南:大数据时代的“数据基建”与 IoTDB 的工业原生之路
大数据·数据库·mysql·oracle·sqlserver·时序数据库·iotdb
UpYoung!7 天前
【数据库工具】DBeaver——轻量化多功能数据库连接工具DBeaver Ultimate 24.0.0版详细下载安装指南
数据库·mysql·sqlserver·数据库开发·数据库管理·dbeaver·数据库工具
代码雕刻家7 天前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver