错误内容

System.TypeLoadException:"Method 'Create' in type 'Microsoft.EntityFrameworkCore.SqlServer.Query.Internal.SqlServerSqlTranslatingExpressionVisitorFactory' from assembly 'Microsoft.EntityFrameworkCore.SqlServer, Version=3.1.21.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' does not have an implementation."


触发原因

更新 Npgsql.EntityFrameworkCore.PostgreSQL 到 6.0.22


问题排查

根据提示,发现是引用的原类库使用了Microsoft.EntityFrameworkCore.SqlServer 3.1.21,

而在主项目中,其依赖的Microsoft.EntityFrameworkCore 已经因为更新Npgsql.EntityFrameworkCore.PostgreSQL升级到了6.0

即Microsoft.EntityFrameworkCore.SqlServer 3.1.21变成依赖了Microsoft.EntityFrameworkCore 6.0 相关的类或者方法


解决

主项目引用Microsoft.EntityFrameworkCore.SqlServer 6.0,覆盖掉类库的引用