다음 코드를 사용하여 데이터베이스에 새 사용자를 추가하려고 합니다.
으아아아하지만 계속해서 다음과 같은 오류가 발생합니다.
System.TypeLoadException: > 'MySql.Data.EntityFrameworkCore' 어셈블리의 'MySql.Data.EntityFrameworkCore.Query.Internal.MySQLSqlTranslatedExpressionVisitorFactory' 유형의 'Create' 메서드, 버전=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.ConcurrentDictionary 2.GetOrAdd(TKey key, Func
2 valueFactory에서) Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.GetOrAdd(IDbContextOptions 옵션, >부울 공급자 필수) 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 엔터티) contatinApi.Data.SeedData.SeedUsers()의 D:devcontatinapiDataSeedData.cs: 24행 System.Threading.Tasks.Task.<>c.b__139_1(ObjectState) 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()
사용자 클래스:
으아아아EF Core 및 MySQL 패키지가 업데이트되었습니다. 또한 저장 프로시저를 사용해 보았지만 동일한 결과가 나왔습니다.
Ex의 내용은 다음과 같습니다.
Ex 값은 "MySql.Data.EntityFrameworkCore" 어셈블리의 "MySql.Data.EntityFrameworkCore.Query.Internal.MySQLSqlTranslatedExpressionVisitorFactory" 유형의 {System.TypeLoadException: 메서드 "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.ConcurrentDictionary
2.GetOrAdd(TKey key, Func
2 valueFactory에서) Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.GetOrAdd(IDbContextOptions 옵션, 부울 공급자 필수) 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.InternalDbSet
1.Add(TEntity 엔터티) D:devContatinApiDataSeedData.cs의 contatinApi.Data.SeedData.SeedUsers(): 40행}
Microsoft.EntityFrameworkCore 5.0을 사용하는 경우 Microsoft.EntityFrameworkCore 3.1.10으로 다운그레이드하세요. MySQL EF 8.0.22는 현재 Microsoft.EntityFrameworkCore 5.0과 호환되지 않습니다
Microsoft.EntityFrameworkCore 5.0으로 업그레이드할 때까지 작동하는 코드가 있었지만 동일한 오류가 발생하여 다운그레이드했더니 제대로 작동했습니다!
MySQL 버그 포럼에 버그 보고서를 게시하고 싶습니다