ASP.NET のCode Firstで、データの自動追加ができなくなりました。
具体的には、自分で定義したテーブルを一つでも追加すると、テーブルはできるのに、ユーザーデータの追加がされなくなります。
(IdentityModels.cs)
C#
1public class ApplicationDbContext : IdentityDbContext<ApplicationUser> 2{ 3 public ApplicationDbContext() : base("DefaultConnection") { } 4 5 public DbSet<AddTableAAA> AddTableAAAs { get; set; } //★★★これが追加したテーブル★★★ 6 7 public static ApplicationDbContext Create() 8 { 9 return new ApplicationDbContext(); 10 } 11} 12
(Configuration.cs)
C#
1internal sealed class Configuration : DbMigrationsConfiguration<ProjectNameAAA.Models.ApplicationDbContext> 2{ 3 public Configuration() 4 { 5 AutomaticMigrationsEnabled = true; 6 } 7 8 protected override void Seed(ProjectNameAAA.Models.ApplicationDbContext context) 9 { 10 context.Users.AddOrUpdate( 11 i => i.Id, 12 new Models.ApplicationUser 13 { 14 Id = "1", 15 EmailConfirmed = false, 16 UserName = "mymail@mail.com", 17 Email = "mymail@mail.com", 18 PasswordHash = new PasswordHasher().HashPassword("Password@123"), 19 SecurityStamp = string.Empty, 20 DisplayName = "ユーザー" 21 } 22 ); 23 context.SaveChanges(); 24 } 25}
「★★★これが追加したテーブル★★★」の一行をコメントアウトすると、
パッケージマネージャーから [update-database]を実行した場合に、
ちゃんと**[AspNetUsers] テーブルにデータが追加されます**。
ところが、上記のようにテーブルを追加すると、追加したテーブルは自動で作られるのですが、
今度はユーザーデータが追加されません。
もちろん、他のテーブルへのデータ追加もされません。
特にエラーなどは吐いていないようです。
となると、これは想像ですが、何かで上書きしてしまっているのか……
どうすればデータ追加をしながら、テーブルの追加もできるか、教えていただければ幸いです。
あなたの回答
tips
プレビュー