Erreur ASP.NET/Identity: Le type d'entité ApplicationUser ne fait pas partie du modèle pour le contexte actuel
Dans Déplacer ASP.NET magasin d'identités à EF base de données Sql zoidbergi décrit un problème similaire à celui que je suis en train de vivre, mais qui n'était pas entièrement répondu. Je reçois l'erreur ci-dessus lorsque l'on tente de migrer à partir de l'intégré .mdf base de données MySQL. Je suis l'aide d'une Base de données-Première méthodologie, et qui ont réussi à créer le Modèle d'Entité de la base de données Mysql.
Peu importe si je recréer l'asp.net l'identité tables de données de l'application étouffe dès que le gestionnaire des utilisateurs est accessible:
The entity type ApplicationUser is not part of the model for the current context.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.InvalidOperationException: The entity type ApplicationUser is not part of the model for the current context.
Source Error:
Line 65: ' Create a local login before signing in the user
Line 66: Dim user = New ApplicationUser() With {.UserName = model.UserName}
**Line 67: Dim result = Await UserManager.CreateAsync(User, model.Password)**
Line 68: If result.Succeeded Then
Line 69: Await SignInAsync(User, isPersistent:=False)
J'ai fait le ApplicationDBContext à mon DbContext modèle:
Public Class ApplicationDbContext
Inherits IdentityDbContext(Of ApplicationUser)
Public Sub New()
MyBase.New("IMSEntities")
End Sub
End Class
Googler tend à trouver des gens qui ont donné et codé en place leurs propres prestataires de sécurité, je voudrais utiliser le standard si possible. Dérouté!
source d'informationauteur Richard Freeman
Vous devez vous connecter pour publier un commentaire.
(INÉLÉGANTE?) SOLUTION:
J'ai regardé cette excellente vidéo https://www.youtube.com/watch?v=elfqejow5hM par Alexander Schmidt et à 33:00 l'auteur révèle que la chaîne de connexion ne doit pas être un objectif EF chaîne de connexion (à l'aide de l'EF fournisseur), mais devrait être à la vanille, MYSQL/sql server chaîne de connexion spécialement créée pour la sécurité, c'est à dire:
et, de même, le modèle d'identité doit être ajusté à:
Cela me rend nerveux au sujet de l'accès à la sécurité entités par le biais de la moraine d'oak ridges - mais je pense que peut-être bien de par leur conception, donc peut-être pas de perte.
Dans mon cas, c'était la
providerName
propriété de la chaîne de connexion. J'ai utilisé une copie de la Base de données de la Première génération de la chaîne de connexion qui utiliseSystem.Data.EntityClient
bien que normale, les chaînes de connexion (SQL Server) utilisationSystem.Data.SqlClient
. J'ai donc changé cetteà ce