将 dotnet 从 v2 升级到 v8 后,我收到此错误 - System.MissingMethodException

问题描述 投票:0回答:1

我在后端使用 C#,在前端使用 Angular,将 dotnet 升级到版本 8 后,我在尝试通过前端登录时收到此错误 -

 System.MissingMethodException: 'Method not found: 'Void CoreTypeMappingParameters..ctor(System.Type, Microsoft.EntityFrameworkCore.Storage.ValueConversion.ValueConverter, Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer, Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer, Microsoft.EntityFrameworkCore.ChangeTracking.ValueComparer, System.Func`3<Microsoft.EntityFrameworkCore.Metadata.IProperty,Microsoft.EntityFrameworkCore.Metadata.IEntityType,Microsoft.EntityFrameworkCore.ValueGeneration.ValueGenerator>)'.'

在返回函数中我收到此错误 -

 

public LoginResponce ValidateUserLogin(LoginRequest loginRequest)
{
    MySqlParameter[] sqlParams = new MySqlParameter[1];
    sqlParams[0] = new MySqlParameter { ParameterName = "loginId", MySqlDbType = MySqlDbType.VarChar, Value = loginRequest.UserId.StringVal() };

    //return Context.Query<LoginResponce>().FromSql("Call ValidateUserLogin (@loginId)", sqlParams).FirstOrDefault();

    return Context.LoginResponces.FromSqlRaw<LoginResponce>("Call ValidateUserLogin (@loginId)", sqlParams).FirstOrDefault();
}

这是与数据库字符串连接的代码-

 

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.ConfigureWarnings(warnings => warnings.Log(CoreEventId.LazyLoadOnDisposedContextWarning));

    if (optionsBuilder.IsConfigured == false)
    {
        optionsBuilder.UseMySql(EntityConstants.SQLConnectionString, new MySqlServerVersion(new Version(8, 0, 33)))
        .UseLazyLoadingProxies(false) // <-- enable Lazy Loading
        .EnableSensitiveDataLogging()
        .EnableDetailedErrors();
    }
}

我尝试过以下方法

  1. 我将“TrustServerCertificate=True”添加到我的数据库连接字符串中。

  2. 检查所有版本是否与EntityFrameworkCore.MySql兼容。

c# asp.net entity-framework-core nuget-package
1个回答
0
投票

当您更改 .NET 版本时,NuGet 包不会自动更新,您必须手动执行此操作。通常 EF Core / dotnet 包含太多重大更改,无法保持所有版本彼此兼容。

在这种情况下,EF Core 尝试调用一些在 .NET 8 中不再可用但在构建包的版本中可用的方法,因此

MissingMethodException

© www.soinside.com 2019 - 2024. All rights reserved.