Перш за все, я більше ніде не бачив цієї помилки, і, мабуть, це не копія, тому, будь ласка, спочатку прочитайте всю ситуацію.
Все працювало чудово, тоді я спробував оновити один із своїх класів моделі ( клас App та оновлення тепер залишено коментарями), який я перелічу нижче; і бум у мене була ця потворна помилка.
Модель, що підтримує контекст 'ApplicationDbContext', змінилася з моменту створення бази даних. Розгляньте можливість використання First First Migrations для оновлення бази даних ( 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 (Дія дії) у System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization (System.DatabaseInitialization (SystemDatabaseInitialization (SystemDatabaseInitialization (SystemDatabaseInitialization Internal.LazyInternalContext.b__4 (InternalContext c) в System.Data.Entity.Internal.RetryAction1.PerformAction(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action
1, дія) в System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase () в System.Data.Entity.Internal.InternalCype. entityType) у System.Data.Entity.Internal.Linq.InternalSet1.Initialize() at System.Data.Entity.Internal.Linq.InternalSet
1.Включіть (Рядковий шлях) у System.Data.Entity.Infrastructure.DbQuery1.Include(String path) at System.Data.Entity.QueryableExtensions.Include[T](IQueryable
1 джерело, Рядковий шлях) у System.Data.Entity.QueryableExtensions.Include [T, TProperty] (IQueryable1 source, Expression
1 шлях) у Microsoft.AspNet.Identity. Фільтр EntityFramework.UserStore6.GetUserAggregateAsync(Expression
1) у Microsoft.AspNet.Identity.EntityFramework.UserStore6.FindByNameAsync(String userName) at Microsoft.AspNet.Identity.UserManager
2.FindByNameAsync (String userName) у Microsoft.AspNet.Identity.UserManager`2.d__12.MoveNext () --- кінець стека з попереднього розташування з попереднього розташування виняток був викинутий --- на System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (завдання завдання) на System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Завдання завдання) на ControlPanel.Web.cnt__Control.Control. : \ Projects \ FULL \ Control Panel \ ControlPanel.Web \ Controllers \ AccountController.cs: рядок 56
Спочатку я думав, що це може бути проблемою міграції, тому я повністю скинув базу даних, знову ввімкнув міграції та додав міграцію Init та оновив базу
update-database -force -verbose
Все проходить добре, без претензій, однак, коли я намагаюся увійти на свій сайт, я отримую попередню помилку. Я зробив те, що стосується міграції, близько десяти разів, не зумівши вирішити проблему.
Ось мої доменні класи (моделі):
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; }
}
Ось мої 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");
}
}