Прежде всего, я не видел эту ошибку где-либо еще, и я думаю, что это не копия, поэтому, пожалуйста, сначала прочитайте всю ситуацию.
Все работало нормально, тогда я попытался обновить один из моих классов моделей (класс App и обновление теперь оставлено в комментариях), который я буду перечислять ниже, и что у меня возникла эта уродливая ошибка.
Модель, поддерживающая контекст ApplicationDbContext, изменилась с момента создания базы данных. Рекомендуется использовать Code 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 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) в System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase() в System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForTpepe(Type).1.Initialize() at System.Data.Entity.Internal.Linq.InternalSet
1.Include (путь строки) в System.Data.Entity.Infrastructure.DbQuery1.Include(String path) at System.Data.Entity.QueryableExtensions.Include[T](IQueryable
1.Include(String path) at System.Data.Entity.QueryableExtensions.Include[T](IQueryable
1 источник, путь строки) в System.Data.Entity.QueryableExtensions.Include [T, TProperty] (1 source, Expression
IQueryable1 source, Expression
путь1 source, Expression
1) в Microsoft.AspNet.Identity.EntityFramework.UserStore6.GetUserAggregateAsync(Expression
фильтр6.GetUserAggregateAsync(Expression
1) в Microsoft.AspNet.Identity.EntityFramework.UserStore6.FindByNameAsync(String userName) at Microsoft.AspNet.Identity.UserManager
2.FindByNameAsync (строка userName) в Microsoft.AspNet.Identity.UserManager'2.d__12.MoveNext( Конец трассировки стека от предыдущего местоположения, в котором было сгенерировано исключение --- в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task TaskControl.A..d__2.MoveNext() в d:\Projects\FULL\Панель управления \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");
}
}