Le type d'entité IdentityUser ne fait pas partie du modèle pour le contexte actuel
Je vois le même problème que cette question, mais le scénario présenté, il ne semble pas s'appliquer donc je pense avoir un problème différent. En fait, je suis en voir plusieurs questions AFIN que soient similaires, chacun avec différentes causes et les solutions, donc je pense que cette erreur doit être causé par un niveau élevé. Cela dit...
J'ai un EF code-premier modèle de base de données et je suis en train d'utiliser IdentityUser
pour étendre un enregistrement standard pour mon MVC 5 site.
J'ai mon prolongée UserModel
:
namespace MyMvcSite.Models {
public class UserModel :IdentityUser {
public string BillingId { get; set; }
public virtual ICollection<DatabaseModel> Databases { get; set; }
}
Et mon contexte:
using MyMvcSite.Models;
namespace MyMvcSite.Web {
public class AuthContext : IdentityDbContext<UserModel> {
public AuthContext() : base("AuthContext") {
}
}
}
Maintenant, quand j'execute le code pour inscrire un utilisateur:
public async Task<IdentityResult> RegisterUser(UserModel user) {
user.Email = user.UserName;
var result = await _userManager.CreateAsync(user);
return result;
}
J'obtiens l'erreur: The entity type IdentityUser is not part of the model for the current context.
je ne peux pas comprendre ce que cette erreur signifie, car il ressemble à moi, j'ai tout corriger. Peut-on dire de ce qui pourrait mal se passer???
Je sais que mon connectionString AuthContext
est correcte parce que j'ai utilisé auparavant.
source d'informationauteur Brett
Vous devez vous connecter pour publier un commentaire.
Lorsque vous utilisez un utilisateur personnalisée de classe avec ASP.NET d'Identité, vous devez vous assurer que vous spécifiez explicitement l'utilisateur personnalisée type de classe
<T>
à la fois à l'UserManager
et laUserStore
sur l'instanciation.ou dans la forme courte (comme votre réponse en commentaire):
Si le type est autorisé par défaut
IdentityUser
lorsque vous souhaitez utiliser une classe personnalisée, vous pouvez rencontrer l'erreur que vous avez signalé.J'ai eu ce même problème, et je me souviens avoir un problème similaire de travail avec SimpleMembership dans MVC4.
Je suis en train de faire la première base de données de développement, j'ai donc un fichier EDMX. S'avère, ASP.NET l'Identité n'aime pas la chaîne de connexion qui est créé lorsque vous générez votre .edmx fichier de modèle. Si vous utilisez un. EDM chaîne de connexion dans :base(“EDMConnString”), vous aurez plus de chances d'avoir ce problème.
J'ai fixé ce, par la création d'un standard de la chaîne de connexion qui pointait vers la base de données où l'ASP.NET l'Identité tables sont (dans mon cas la même base de données), utilisé que la chaîne de connexion dans :de base, et cela a fonctionné.
Quelque chose comme cela
J'ai eu cette erreur lorsque j'ai présenté DI à mon projet. À l'aide de AutoFac et de l'Identité que j'avais à ajouter les éléments suivants:
builder.RegisterType<ApplicationDbContext>().As<DbContext>().InstancePerLifetimeScope();
Sans cela, lors de l'AutoFac a été la création de mon UserStore exemple, il a été à l'aide de la valeur par défaut
UserStore()
ctor qui crée un nouveauIdentityDbContext
pas monApplicationDbContext
.Avec cette ligne,
UserStore(DbContext context)
ctor est appelée, avec monApplicationDbContext
.