升级到.NET8 LINQ Where关键字 'WITH' 附近有语法错误解决方案|C/S开发框架
作者:csframework|C/S框架网  发布日期:2024/10/20 11:51:58

因为 .NET8 优化了 Contains 子句的 SQL 翻译,之前的 IN 查询有性能问题,但这个优化只有 SQL Server 2016 及以上版本的数据库支持,否则就会报这个错。

而且即便数据库引擎版本达到,数据库本身的兼容性设置如果低于 SQL Server 2016 的话,也会报错。

解决方案1

安装 SQL Server 2016 或更高版本的数据库,或者修改数据库本身的兼容性设置到 SQL Server 2016 或更高

解决方案2

在代码中增加兼容性配置项:

C# 全选
        public DbContextOptions UseDatabase(DbContextOptionsBuilder builder, DbConnection dbConnection)
        {
            //UseCompatibilityLevel(120),解决.NET8 LINQ Where关键字 'WITH' 附近有语法错误
            builder.UseSqlServer(dbConnection, x => x.UseNetTopologySuite().UseCompatibilityLevel(120));
            return builder.Options;
        }
C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇