Tout d'abord, je n'ai vu cette erreur nulle part ailleurs et je suppose que ce n'est pas une réplique, alors veuillez d'abord lire toute la situation.
Tout fonctionnait très bien alors j'ai essayé de mettre à jour l'une de mes classes de modèle (la classe App et la mise à jour sont maintenant commentées) que je vais lister ci-dessous; et boum j'ai eu cette horrible erreur.
Le modèle supportant le contexte 'ApplicationDbContext' a changé depuis la création de la base de données. Pensez à utiliser les migrations Code First pour mettre à jour la base de données ( http://go.microsoft.com/fwlink/?LinkId=238269 ). à System.Data.Entity.CreateDatabaseIfNotExists
1.InitializeDatabase(TContext context) at System.Data.Entity.Internal.InternalContext.<>c__DisplayClassf
1.b__e () à System.Data.Entity.Internal.InternalContext.PerformInitializationAction (action d'action) à System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization () à System.Data.Entity. Internal.LazyInternalContext.b__4 (InternalContext c) à System.Data.Entity.Internal.RetryAction1.PerformAction(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action
1 action) à System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase () à System.Data.Entity.Internal.InternalContext.GetEntityTypeForType entityType) à System.Data.Entity.Internal.Linq.InternalSet1.Initialize() at System.Data.Entity.Internal.Linq.InternalSet
1.Include (String path) at System.Data.Entity.Infrastructure.DbQuery1.Include(String path) at System.Data.Entity.QueryableExtensions.Include[T](IQueryable
1 source, String path) at System.Data.Entity.QueryableExtensions.Include [T, TProperty] (IQueryable1 source, Expression
1 path) at Microsoft.AspNet.Identity. EntityFramework.UserStore6.GetUserAggregateAsync(Expression
1 filter) sur Microsoft.AspNet.Identity.EntityFramework.UserStore6.FindByNameAsync(String userName) at Microsoft.AspNet.Identity.UserManager
2.FindByNameAsync (String userName) sur Microsoft.AspNet.Identity.UserManager`2.d__12.MoveNext () --- Fin de la trace de pile à partir de l'emplacement précédent où exception a été levée --- à System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (tâche de tâche) à System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (tâche de tâche) à ControlPanel.Web.Controllers.Account dans ControlPanel.Web. : \ Projects \ FULL \ Control Panel \ ControlPanel.Web \ Controllers \ AccountController.cs: ligne 56
Au début, je pensais que cela pouvait être un problème de migration, alors j'ai complètement supprimé la base de données, réactivé les migrations, ajouté une migration Init et mis à jour la base de données en utilisant
update-database -force -verbose
Tout se passe bien sans aucune plainte, cependant, chaque fois que j'essaye de me connecter à mon site, j'obtiens l'erreur précédente. J'ai fait la migration une dizaine de fois sans pouvoir résoudre le problème.
Voici mes classes de domaine (modèles):
public class App
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public virtual int AppId { get; set; }
//[Required]
public virtual string FacebookId { get; set; }
//[Required]
public virtual string Secret { get; set; }
public virtual List<User> Users { get; set; }
public virtual List<Post> Posts { get; set; }
//public virtual ApplicationUser Admin { get; set; }
}
public class Post
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public virtual int PostId { get; set; }
public virtual string Content { get; set; }
public virtual string Link { get; set; }
public virtual string Image { get; set; }
public virtual bool IsSpecial { get; set; }
//[Required]
public virtual App App { get; set; }
//[Required]
public virtual DateTime? PublishDate { get; set; }
}
public class User
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public virtual int UserId { get; set; }
[MaxLength(500)]
public virtual string FacebookId { get; set; }
[MaxLength(500)]
public virtual string Token { get; set; }
//[Required]
public virtual App App { get; set; }
}
Here are my IdentityModels:
public class ApplicationUser : IdentityUser
{
public virtual List<App> Apps { get; set; }
public bool? IsPremium { get; set; }
[DataType(DataType.Date)]
public DateTime? LastPublishDateTime { get; set; }
}
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("dCon")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("Admins");
modelBuilder.Entity<ApplicationUser>().ToTable("Admins");
modelBuilder.Entity<IdentityUserRole>().ToTable("AdminRoles");
modelBuilder.Entity<IdentityUserLogin>().ToTable("Logins");
modelBuilder.Entity<IdentityUserClaim>().ToTable("Claims");
modelBuilder.Entity<IdentityRole>().ToTable("Roles");
}
}