我正在嘗試使用以下程式碼將新用戶新增到資料庫:
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.2.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 選項,>布爾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.222. =中性, 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 選項,布林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.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 Bug 論壇上發布 Bug 報告