J'essaye de configurer une application multi-location en utilisant Identity Framework Core.Annuler HasIndex dans OnModelCreating
J'ai réussi à créer un ApplicationUser personnalisé pour remplacer IdentityUser avec TenantId en utilisant les instructions suivantes: https://www.scottbrady91.com/ASPNET-Identity/Quick-and-Easy-ASPNET-Identity-Multitenancy (ces instructions ne concernent pas Identity Framework Core mais ont aidé).
Je suis bloqué au moment où je crée les tables de base de données.
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
builder.Entity<Models.User>(entity =>
{
entity.HasIndex(a => new { a.NormalizedUserName, a.TenantId }).HasName("UserNameIndex").IsUnique();
});
}
Mon intention avec c'est de remplacer le UserNameIndex qui est défini dans base.OnModelCreating() de sorte qu'il est un index sur deux colonnes plutôt que de simplement NormalizedUsername. Mais il en résulte que l'erreur:
The indexes {'NormalizedUserName', 'TenantId'} on 'User' and {'NormalizedUserName'} on 'User' are both mapped to 'Security.AspNetUser.UserNameIndex' but with different columns ({'NormalizedUserName', 'TenantId'} and {'NormalizedUserName'}).
Il est évident que je veux défaire l'indice qui est créé dans l'appel avant de l'ajouter dans mon code base.OnModelCreating(), mais ne peut pas trouver une méthode pour faire cette.
Existe-t-il un moyen de supprimer un index de ModelBuilder qui a été créé plus haut dans la chaîne de création de modèle?