우선, 다른 곳에서는이 오류를 본 적이 없으며 복제가 아닌 것 같으므로 먼저 전체 상황을 읽으십시오.
모든 것이 잘 작동 한 다음 아래에 나열 할 모델 클래스 ( App 클래스 와 업데이트는 주석 처리됨) 중 하나 를 업데이트 하려고했습니다 . 그리고 붐 나는이 추악한 오류가 있었다.
'ApplicationDbContext'컨텍스트를 지원하는 모델이 데이터베이스 생성 이후 변경되었습니다. Code First 마이그레이션을 사용하여 데이터베이스를 업데이트하십시오 ( 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 () at System.Data.Entity.Internal.InternalContext.PerformInitializationAction (Action action) at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization () at System.Data.Entity. System.Data.Entity.Internal.RetryAction에서 Internal.LazyInternalContext.b__4 (InternalContext c)1.PerformAction(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action
at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase () at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType (Type System.Data.Entity.Internal.Linq.InternalSet의 entityType)1.Initialize() at System.Data.Entity.Internal.Linq.InternalSet
1. Microsoft.AspNet.Identity의1.Include(String path) at System.Data.Entity.QueryableExtensions.Include[T](IQueryable
System.Data.Entity.QueryableExtensions.Include [T, TProperty] (IQueryable1 source, Expression
1 경로)에 있는 System.Data.Entity.Infrastructure.DbQuery 1 원본, 문자열 경로의 포함 (문자열 경로) . EntityFramework.UserStore6.GetUserAggregateAsync(Expression
1 필터) Microsoft.AspNet.Identity.EntityFramework.UserStore6.FindByNameAsync(String userName) at Microsoft.AspNet.Identity.UserManager
2. FindByNameAsync (String userName) at Microsoft.AspNet.Identity.UserManager`2.d__12.MoveNext () --- 이전 위치의 스택 추적 끝 예외가 발생했습니다 --- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Task task) at ControlPanel.Web.Controllers.AccountController.d__2.MoveNext () in d : \ Projects \ FULL \ Control Panel \ ControlPanel.Web \ Controllers \ AccountController.cs : line 56
처음 에는 마이그레이션 문제라고 생각했기 때문에 데이터베이스를 완전히 삭제하고 마이그레이션을 다시 활성화하고 Init 마이그레이션을 추가하고 다음을 사용하여 데이터베이스를 업데이트했습니다.
update-database -force -verbose
모든 것이 불만없이 잘 진행되지만 내 사이트에 로그인하려고 할 때마다 이전 오류가 발생합니다. 문제를 해결할 수없는 상태에서 마이그레이션 작업을 10 번 정도했습니다.
다음은 내 도메인 클래스 (모델)입니다.
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");
}
}