搜索

首页  >  问答  >  正文

TypeLoadException: 在类型 'MySql.Data.EntityFrameworkCore.Query.Internal.MySQLSqlTranslatingExpressionVisitorFactory' 中找不到方法 'Create'

我正在尝试使用以下代码将新用户添加到数据库:

public async void SeedUsers(){
    int count=0;
    if(count>0){
        return;
    }
    else{
        string email="jujusafadinha@outlook.com.br";
        _context.Add(new User{LoginEmail=email});  
        await _context.SaveChangesAsync();  
    }
}

但它一直给我以下错误:

System.TypeLoadException:>程序集“MySql.Data.EntityFrameworkCore”中的“MySql.Data.EntityFrameworkCore.Query.Internal.MySQLSqlTranslatedExpressionVisitorFactory”类型中的方法“创建”,版本=8.0.22.0,文化=中性,>PublicKeyToken=c5687fc88969c44d ' 没有实现。 在 MySql.Data.EntityFrameworkCore.Extensions.MySQLServiceCollectionExtensions.AddEntityFrameworkMySQL(IServ>iceCollection 服务) 在 MySql.Data.EntityFrameworkCore.Infrastruct.Internal.MySQLOptionsExtension.ApplyServices(IServiceColle>ction 服务) 在 Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.ApplyServices(IDbContextOptions >选项,ServiceCollection 服务) 在 Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.c__DisplayClass4_0.b__2(Int64 k) 在 System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory) 在 Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.GetOrAdd(IDbContextOptions 选项,>布尔providerRequired) 在 Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider() 在 Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependency() 在 Microsoft.EntityFrameworkCore.DbContext.EntryWithoutDetectChanges[TEntity](TEntity 实体) 在 Microsoft.EntityFrameworkCore.DbContext.SetEntityState[TEntity](TEntity 实体,EntityState >entityState) 在 Microsoft.EntityFrameworkCore.DbContext.Add[TEntity](TEntity 实体) 在 D:devcontatinapiDataSeedData.cs 中的 contatinApi.Data.SeedData.SeedUsers() 处:第 24 行 在 System.Threading.Tasks.Task.<>c.b__139_1(对象状态) 在 System.Threading.QueueUserWorkItemCallback.<>c.<.cctor>b__6_0(QueueUserWorkItemCallback quwi) 在 System.Threading.ExecutionContext.RunForThreadPoolUnsafe[TState](ExecutionContext >executionContext,Action`1 回调,TState& 状态) 在 System.Threading.QueueUserWorkItemCallback.Execute() 在 System.Threading.ThreadPoolWorkQueue.Dispatch() 在 System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()

用户类:

public class User
    {
        public int Id{get;set;}
        public string LoginEmail{get;set;}
        public string UserName{get;set;}
        public DateTime CreatedAt{get;set;}
        public List<Contact> Contacts {get;set;}
        public List<ContactList> ContactLists{get;set;}
    }

EF Core 和 MySQL 软件包均已更新。另外,我尝试使用存储过程,它给出了相同的结果。

Ex 的内容是:

Ex 的值为 {System.TypeLoadException:程序集“MySql.Data.EntityFrameworkCore”中类型“MySql.Data.EntityFrameworkCore.Query.Internal.MySQLSqlTranslatedExpressionVisitorFactory”中的方法“Create”,版本=8.0.22.0,文化=中性, PublicKeyToken=c5687fc88969c44d' 没有实现。 在 MySql.Data.EntityFrameworkCore.Extensions.MySQLServiceCollectionExtensions.AddEntityFrameworkMySQL(IServiceCollection 服务) 在 MySql.Data.EntityFrameworkCore.Infrastruct.Internal.MySQLOptionsExtension.ApplyServices(IServiceCollection 服务) 在 Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.ApplyServices(IDbContextOptions 选项,ServiceCollection 服务) 在 Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.<>c__DisplayClass4_0.g__BuildServiceProvider|3() 在 Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.<>c__DisplayClass4_0.b__2(Int64 k) 在 System.Collections.Concurrent.ConcurrentDictionary2.GetOrAdd(TKey key, Func2 valueFactory) 在 Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.GetOrAdd(IDbContextOptions 选项,布尔providerRequired) 在 Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider() 在 Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependency() 在 Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Internal.IDbContextDependency.get_StateManager() 在 Microsoft.EntityFrameworkCore.Internal.InternalDbSet1.EntryWithoutDetectChanges(TEntity 实体) 在 Microsoft.EntityFrameworkCore.Internal.InternalDbSet1.Add(TEntity 实体) 在 D:devContatinApiDataSeedData.cs 中的 contatinApi.Data.SeedData.SeedUsers() 处:第 40 行}


P粉502608799P粉502608799407 天前565

全部回复(1)我来回复

  • P粉578680675

    P粉5786806752023-10-23 10:01:31

    如果您使用的是 Microsoft.EntityFrameworkCore 5.0,请将其降级到 Microsoft.EntityFrameworkCore 3.1.10 MySQL EF 8.0.22 目前与 Microsoft.EntityFrameworkCore 5.0 不兼容

    我有一个工作代码,直到我升级到 Microsoft.EntityFrameworkCore 5.0,然后我得到了同样的错误,降级并且它工作了!

    希望在 MySQL Bug 论坛上发布 Bug 报告

    回复
    0
  • 取消回复