[SOLUTION]
La solution est beaucoup plus facile que je thougth ..
Tout ce que je devais faire était héritant ma table d'utilisateur de IdentityUser (AspNetUser est ma propre table)
public partial class AspNetUser : IdentityUser
et en utilisant mon nom de chaîne de connexion personnalisée (BCTSDb) au lieu de DefaultConnection dans IdentityModels.cs.
public ApplicationDbContext()
: base("BCTSDb", throwIfV1Schema: false)
Ceci est codefirst la base de données, première base de données ne fonctionne pas avec cette solution (je ne sais pas pourquoi).
Ceci a résolu le problème FIRST. Après cela, je ne pouvais pas échafauder des contrôleurs avec des vues à cause de clés manquantes et de références ambiguës.
[WHATTODO]
1. Références ambigües
Dans ma classe AspNetUser.cs je l'ai fait tous ORIGINAL attributs Prioritaire: par exemple UserName:
public override string UserName { get; set; }
C'est possible que ce n'est pas nécessaire, je n'ai pas essayé sans cela, peut-être olve les références ambiguës entre mon dbcontext et ApplicationDbContext.
2. clés manquantes
Je ne sais pas où je l'ai laissé mes clés, mais il y a la solution:
A la fin de ma fonction OnModelCreating (dans mon dbcontext) je l'ai écrit les lignes suivantes:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// your table operations, references
// ...
modelBuilder.Entity<IdentityUserLogin>().HasKey<string>(l => l.UserId);
modelBuilder.Entity<IdentityRole>().HasKey<string>(r => r.Id);
modelBuilder.Entity<IdentityUserRole>().HasKey(r => new { r.RoleId, r.UserId });
base.OnModelCreating(modelBuilder);
}
Après cela, je pourrais faire tout ce que je veux.
Je pense que ce n'est pas un problème sql, quelque chose avec le multithread –
Y a-t-il une table ApplicationUser dans votre base de données? Et votre propre DbContext hérite-t-il de IdentityDbContext? – kloarubeek
Merci de vouloir ajouter une réponse. Voulez-vous revenir à votre version antérieure et publier votre réponse en utilisant la boîte de réponse? Merci. – halfer