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

相关推荐
北京_小杰子3 天前
Windows10本地安装SQLserver数据库连接的过程
数据库·windows·sqlserver·php
山岚的运维笔记4 天前
SQL Server笔记 -- 第86章:查询存储
笔记·python·sql·microsoft·sqlserver·flask
汇智信科4 天前
汇智信科网络考试系统:以技术赋能,重构在线测评新范式
linux·数据库·mysql·oracle·sqlserver·java技术
开开心心_Every4 天前
音频格式互转工具,支持Mp3ApeWavFlac互转
linux·运维·服务器·typescript·edge·pdf·asp.net
山岚的运维笔记5 天前
SQL Server笔记 -- 第85章:查询提示
数据库·笔记·sql·microsoft·sqlserver
知识分享小能手5 天前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 开发企业人事管理系统 — 语法知识点及使用方法详解(21)
sql·学习·sqlserver
No8g攻城狮6 天前
【SQL】MySQL中空值处理COALESCE函数
数据库·sql·mysql·postgresql·sqlserver
山岚的运维笔记6 天前
SQL Server笔记 -- 第80章:分页
java·数据库·笔记·sql·microsoft·sqlserver
知识分享小能手6 天前
SQL Server 2019入门学习教程,从入门到精通,SQL Server 2019 新增功能 — 语法知识点及使用方法详解(20)
数据库·学习·sqlserver
山岚的运维笔记6 天前
SQL Server笔记 -- 第78章:MS SQL Server 基本 DDL 操作
数据库·笔记·sql·microsoft·oracle·sqlserver