title: Asp.net core Identity "The INSERT statement conflicted with the FOREIGN KEY constraint "
body: <p>I create ASP.NET CORE application with ASP.NET CORE Identity. 
  I create seed class for saving new users and roles for first startup application. Inside this seed class I get following error when I add Role To User.</p>
  
  <blockquote>
    <p>The INSERT statement conflicted with the FOREIGN KEY constraint
    "FK_AspNetUserRoles_AspNetUsers_UserId". The conflict occurred in
    database "DB_A14695_Elvinm", table "dbo.AspNetUsers", column 'Id'. The
    statement has been terminated.</p>
  </blockquote>
  
  <p>I used following class for Identity</p>
  
  <pre><code>public class ApplicationUser : IdentityUser
  {
      public int Type { get; set; }
      public int Flags { get; set; }
      public DateTime CreatedDate { get; set; }
      public DateTime LastModifiedDate { get; set; }
  }
  </code></pre>
  
  <p>And my seed class</p>
  
  <pre><code> public class DbSeeder
  {
      #region Private Members
      private RvMusicalDbContext DbContext;
      private RoleManager&lt;IdentityRole&gt; RoleManager;
      private UserManager&lt;ApplicationUser&gt; UserManager;
      #endregion Private Members
  
      #region Constructor
      public DbSeeder(RvMusicalDbContext dbContext, RoleManager&lt;IdentityRole&gt; roleManager, UserManager&lt;ApplicationUser&gt; userManager)
      {
          DbContext = dbContext;
          RoleManager = roleManager;
          UserManager = userManager;
      }
      #endregion Constructor
  
      #region Public Methods
      public async Task SeedAsync()
      {
          // Create the Db if it doesn’t exist
          DbContext.Database.EnsureCreated();
          // Create default Users
          if (await DbContext.Users.CountAsync() == 0) await CreateUsersAsync();
      }
      #endregion Public Methods
  
      #region Seed Methods
      private async Task CreateUsersAsync()
      {
          // local variables
          DateTime createdDate = new DateTime(2016, 03, 01, 12, 30, 00);
          DateTime lastModifiedDate = DateTime.Now;
          string role_Administrators = "Administrators";
          string role_Registered = "Registered";
  
          //Create Roles (if they doesn't exist yet)
          if (!await RoleManager.RoleExistsAsync(role_Administrators)) await RoleManager.CreateAsync(new IdentityRole(role_Administrators));
          if (!await RoleManager.RoleExistsAsync(role_Registered)) await RoleManager.CreateAsync(new IdentityRole(role_Registered));
  
          // Create the "Admin" ApplicationUser account (if it doesn't exist already)
          var user_Admin = new ApplicationUser()
          {
              UserName = "Admin",
              Email = "admin@opengamelist.com",
              CreatedDate = createdDate,
              LastModifiedDate = lastModifiedDate,
              Flags = 0,
              Type = 0
          };
  
          // Insert "Admin" into the Database and also assign the "Administrator" role to him.
          if (await UserManager.FindByIdAsync(user_Admin.Id) == null)
          {
              await UserManager.CreateAsync(user_Admin, "Pass4Admin");
              /// ERROR OCCURED HERE
              await UserManager.AddToRoleAsync(user_Admin, role_Administrators);
              // Remove Lockout and E-Mail confirmation.
              user_Admin.EmailConfirmed = true;
              user_Admin.LockoutEnabled = false;
          }
  
      #endregion Seed Methods
  
  
  }
  </code></pre>
  
  <p>I want to say that roles saved database successfully.</p>
  
  <p>Please help to solve problem.</p>