вставить пользователя с помощью seed in asp.net таблицы идентификаторов

Я пытаюсь вставить запись в asp.net структура таблицы идентификаторов на уровне кода выглядит следующим образом.

public class ProjectName_DbInitalize : DropCreateDatabaseIfModelChanges<ProjectName_DBContext>
{
    protected override void Seed(ProjectName_DBContext context)
    {

        context.AspNetUsers.Add
        (
              new AspNetUser
              {
                  Email = "kez@gmail.com",
                  EmailConfirmed = true,
                  PasswordHash = "123456",
                  SecurityStamp = "Author 1st Bio",
                  PhoneNumber = "0734248148",
                  PhoneNumberConfirmed = true,
                  LockoutEndDateUtc = null,
                  LockoutEnabled = true,
                  AccessFailedCount = 0,
                  UserName = "",
                  FirstName = "",
                  LastName = "",
                  CreatedBy = "",
                  CreatedDate = null,
                  UpdatedBy = null,
                  UpdatedDate = null

              }
          );

        context.SaveChanges();

        base.Seed(context);

    }

}

В проект модульного теста я вставляю следующее

public class IdentityRepositoryTest
{
    IdentityRepository identitityRepo;

    // initialize the test class
    [TestInitialize]
    public void TestSetup()
    {
        ProjectName_DbInitalize db = new ProjectName_DbInitalize();
        System.Data.Entity.Database.SetInitializer(db);
        identitityRepo = new IdentityRepository();
    }      
}

но когда я выполняю это, это не вставка значений в AspNet.Usersтаблицу или любую другую таблицу, как я могу сделать это правильно

1 ответ

  1. Постарайтесь не добавлять PasswordHash (я думаю, это сделать это для вас ..потому что это нужно сделать хэш и соль его), а затем попытаться поставить не пустое имя пользователя (mayb установить его равным электронной почте).

    Наконец, попробуйте поместить его в try catch, чтобы вы могли отладить его и прочитать точно ошибку что-то вроде этого

    открытый класс ProjectName_DbInitalize : DropCreateDatabaseIfModelChanges
    {
    защищенное переопределение Void Seed(контекст ProjectName_DBContext)
    {

            try
            {
                context.AspNetUsers.Add
                       (
                             new AspNetUser
                             {
                                 Email = "kez@gmail.com",
                                 EmailConfirmed = true,
                                 PasswordHash = "123456",
                                 SecurityStamp = "Author 1st Bio",
                                 PhoneNumber = "0734248148",
                                 PhoneNumberConfirmed = true,
                                 LockoutEndDateUtc = null,
                                 LockoutEnabled = true,
                                 AccessFailedCount = 0,
                                 UserName = "",
                                 FirstName = "",
                                 LastName = "",
                                 CreatedBy = "",
                                 CreatedDate = null,
                                 UpdatedBy = null,
                                 UpdatedDate = null
    
                             }
                         );
    
                context.SaveChanges();
    
                base.Seed(context);
    
                //context.SaveChanges(); 
    
    
            }
            catch (Exception ex)
            {
    
                throw ex;
            }
        }
    
    }