咨询EF6与EF Core 8兼容的Azure SQL数据库compatibility_level推荐值
关于EF6与EF Core 8共用Azure SQL数据库的兼容性级别问题
我正在将旧的.NET Framework & EF 6 Web API迁移至.NET 8和EF Core 8。此前因EF Core 8的一项重大变更,我将Azure SQL数据库的compatibility_level修改为130——该变更涉及LINQ查询中的Contains方法在旧版SQL Server上可能失效的问题。
我的核心问题是:EF6和EF Core 8各自推荐的compatibility_level是什么?我们希望同一数据库可同时用于EF6和EF Core 8,以此开展迁移测试。
编辑(问题已解决):根据微软官方文档中关于Azure SQL兼容性级别的说明:
- Azure SQL数据库的兼容性级别默认与创建数据库时使用的SQL Server版本对应,可通过
ALTER DATABASE语句修改。- 兼容性级别主要控制数据库的行为,使其匹配对应SQL Server版本的语法规则与查询优化逻辑。
- 针对EF6与EF Core 8共用数据库的场景,需选择同时满足两者要求的兼容性级别:
- EF6对SQL Server的最低兼容性级别要求为
100(对应SQL Server 2008),推荐使用130及以上版本(对应SQL Server 2016),以获得更优的性能与兼容性;- EF Core 8要求SQL Server兼容性级别至少为
130(对应SQL Server 2016),这也是此前将级别修改为130的原因——低于该级别时,LINQ查询中的Contains方法可能无法正常执行。- 综上,将数据库
compatibility_level设置为130可同时满足EF6和EF Core 8的需求,是两者共用数据库开展迁移测试的最优选择。
内容的提问来源于stack exchange,提问作者Saibamen
相关产品推荐
相关产品推荐

