まず第一に、私は他のどこでもこのエラーを見たことがなく、それは複製ではないと思うので、最初に全体の状況を読んでください。
すべてが正常に機能していたので、モデルクラスの1つを更新しようとしました(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()at System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action)at System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization()atSystem.Data.Entity。 Internal.LazyInternalContext.b__4(InternalContext c)at System.Data.Entity.Internal.RetryAction1.PerformAction(TInput input) at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action
1 action)at System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase()at System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType)at System.Data.Entity.Internal.Linq.InternalSet1.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ソースのInclude(文字列パス)、文字列パス)。 EntityFramework.UserStore6.GetUserAggregateAsync(Expression
Microsoft.AspNet.Identity.EntityFramework.UserStoreで1つのフィルタ)6.FindByNameAsync(String userName) at Microsoft.AspNet.Identity.UserManager
前の位置からスタックトレースのMicrosoft.AspNet.Identity.UserManager`2.d__12.MoveNext()---終了時2.FindByNameAsync(文字列のuserName)ここで例外がスローされました--- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(タスクタスク)at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(タスクタスク)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");
}
}