J'essaie d'ajouter un nouvel utilisateur à la base de données en utilisant le code suivant :
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(); } }
Mais cela continue de me donner l'erreur suivante :
System.TypeLoadException : > Méthode 'Create' dans le type 'MySql.Data.EntityFrameworkCore.Query.Internal.MySQLSqlTranslatedExpressionVisitorFactory' dans l'assembly 'MySql.Data.EntityFrameworkCore', version=8.0.22.0, culture=neutral, >PublicKeyToken= c5687fc88969c44d ' Non implémenté. sur MySql.Data.EntityFrameworkCore.Extensions.MySQLServiceCollectionExtensions.AddEntityFrameworkMySQL (IServ>iceCollection service) sur MySql.Data.EntityFrameworkCore.Infrastruct.Internal.MySQLOptionsExtension.ApplyServices (IServiceColle>ction service) sur Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.ApplyServices (IDbContextOptions > Options, ServiceCollection Services) sur Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.
c__DisplayClass4_0.b__2(Int64 ko) dans System.Collections.Concurrent.ConcurrentDictionary 2.GetOrAdd(TKey key, Func
2 valueFactory) sur Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.GetOrAdd (options IDbContextOptions, >Boolean supplierRequired) sur Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider() sur Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependency() sur Microsoft.EntityFrameworkCore.DbContext.EntryWithoutDetectChanges[TEntity](entité TEntity) sur Microsoft.EntityFrameworkCore.DbContext.SetEntityState[TEntity](entité TEntity, EntityState >entityState) sur Microsoft.EntityFrameworkCore.DbContext.Add[TEntity](entité TEntity) Dans D:devcontatinapiDataSeedData.cs à contatinApi.Data.SeedData.SeedUsers() : ligne 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, rappel Action`1, TState& state) dans System.Threading.QueueUserWorkItemCallback.Execute() dans System.Threading.ThreadPoolWorkQueue.Dispatch() Dans System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
Classe d'utilisateur :
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;} }
Les packages EF Core et MySQL ont été mis à jour. De plus, j'ai essayé d'utiliser une procédure stockée et cela a donné le même résultat.
Le contenu deEx est :
La valeur Ex est {System.TypeLoadException : méthode "Create" dans le type "MySql.Data.EntityFrameworkCore.Query.Internal.MySQLSqlTranslatedExpressionVisitorFactory" dans l'assembly "MySql.Data.EntityFrameworkCore", version=8.0.22.0, culture=medium Properties, PublicKeyToken =c5687fc88969c44d' n'est pas implémenté. sur MySql.Data.EntityFrameworkCore.Extensions.MySQLServiceCollectionExtensions.AddEntityFrameworkMySQL (service IServiceCollection) sur MySql.Data.EntityFrameworkCore.Infrastruct.Internal.MySQLOptionsExtension.ApplyServices (service IServiceCollection) sur Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.ApplyServices (options IDbContextOptions, service ServiceCollection) sur Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.<>c__DisplayClass4_0.g__BuildServiceProvider|3() sur Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.<>c__DisplayClass4_0.b__2(Int64 ko) dans System.Collections.Concurrent.ConcurrentDictionary
2.GetOrAdd(TKey key, Func
2 valueFactory) sur Microsoft.EntityFrameworkCore.Internal.ServiceProviderCache.GetOrAdd (options IDbContextOptions, fournisseur booléen requis) sur Microsoft.EntityFrameworkCore.DbContext.get_InternalServiceProvider() sur Microsoft.EntityFrameworkCore.DbContext.get_DbContextDependency() sur Microsoft.EntityFrameworkCore.DbContext.Microsoft.EntityFrameworkCore.Internal.IDbContextDependency.get_StateManager() sur Microsoft.EntityFrameworkCore.Internal.InternalDbSet1.EntryWithoutDetectChanges(TEntity 实体) 在 Microsoft.EntityFrameworkCore.Internal.InternalDbSet
1.Add (entité TEntity) Sur contatinApi.Data.SeedData.SeedUsers() dans D:devContatinApiDataSeedData.cs : ligne 40}
Si vous utilisez Microsoft.EntityFrameworkCore 5.0, veuillez le rétrograder vers Microsoft.EntityFrameworkCore 3.1.10 MySQL EF 8.0.22 n'est actuellement pas compatible avec Microsoft.EntityFrameworkCore 5.0
J'avais un code fonctionnel jusqu'à ce que je passe à Microsoft.EntityFrameworkCore 5.0, puis j'ai eu la même erreur, j'ai été rétrogradé et cela a fonctionné !
J'espère publier un rapport de bug sur le forum de bugs MySQL