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

相关推荐
哥本哈士奇(aspnetx)6 小时前
dbt+SQLServer构建数据仓库(8):Vibe Coding用dbt构建data vault数仓
sqlserver
ERD Online21 小时前
MySQL/Oracle/PG/SQLServer 存量库一键逆向成关系图
mysql·oracle·sqlserver
玖石书2 天前
ASP.NET Core迁移Spring对照系列:文件系统操作篇
spring·asp.net
哥本哈士奇(aspnetx)2 天前
dbt+SQLServer构建数据仓库(6):Jinja与DAG实战
sqlserver
仙人球部落 揞殺2 天前
细说ASP.NET的各种异步操作
后端·asp.net
哥本哈士奇3 天前
dbt+SQLServer构建数据仓库(3):dbt_project.yml配置精讲
数据仓库·sqlserver
哥本哈士奇3 天前
dbt+SQLServer构建数据仓库(4):分层建模实战
数据仓库·sqlserver
全麦面包 time展天3 天前
瀚海拾贝(一)HTTP协议/IIS 原理及ASP.NET运行机制浅析【图解】
网络协议·http·asp.net
吴懿不在 不负信仰4 天前
用三张图片详解Asp.Net 全生命周期
后端·asp.net
哥本哈士奇(aspnetx)4 天前
dbt+SQLServer构建数据仓库(4):分层建模实战
sqlserver