Dotnet
错误内容
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,覆盖掉类库的引用