База данных не создана при запуске - PullRequest
0 голосов
/ 17 мая 2018

Моя база данных больше не создается при запуске приложения.Мы - четыре человека, работающие над одним проектом, и только для меня база данных не создается при запуске.Это работало раньше, я не знаю, что я изменил.Я несколько раз удалял проект и клонировал его с нашего github.Я также несколько раз перезагружал свой компьютер и визуальную студию, но ничего не работает.Мы погуглили проблему, но не можем ее решить.Был бы признателен, если кто-то может помочь мне помочь.Возможно ли, что я изменил некоторые параметры по ошибке, так как только для меня база данных не создана?

Вот мой IdentityDbContext

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext()
        : base("TurreKlippDb", throwIfV1Schema: false)
    {
    }

    public static ApplicationDbContext Create()
    {
        return new ApplicationDbContext();

    }


    public DbSet<Categories> Categories { get; set; }
    public DbSet<Saloon> Saloon { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
    }

}

Мой DataInitializer

public class DataInitializer :
DropCreateDatabaseIfModelChanges<ApplicationDbContext>
{

    protected override void Seed(ApplicationDbContext context)
    {
        var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>(context));
        var UserManager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(context));



        // In Startup iam creating first Admin Role and creating a default Admin User    
        if (!roleManager.RoleExists("Admin"))
        {

            // first we create Admin rool   
            var role = new IdentityRole();
            role.Name = "Admin";
            roleManager.Create(role);
        }

        if (!roleManager.RoleExists("HairSaloon"))
        {

            // create HairSaloon rool   
            var role = new IdentityRole();
            role.Name = "HairSaloon";
            roleManager.Create(role);
        }


        if (!context.Users.Any(x => x.UserName == "admin@live.se"))
        {
            PasswordHasher pwdHash = new PasswordHasher();
            string pwd = pwdHash.HashPassword("123");
            var saloon = new ApplicationUser();


            saloon.PasswordHash = pwd;
            saloon.UserName = "admin@live.se";
            saloon.Email = "admin@live.se";
            saloon.CompanyName = "AdminSaloon";

            saloon.SecurityStamp = Guid.NewGuid().ToString();
            context.Users.Add(saloon);
            context.SaveChanges();

            UserManager.AddToRole(saloon.Id, "Admin");
            context.SaveChanges();
        }




        var l = new List<ApplicationUser>();

        var lista = new List<String>();

        lista.Add("Herrklippning");
        lista.Add("Damklippning");
        lista.Add("Barnklippning");
        lista.Add("Ansiktsbehandlingar");
        lista.Add("Fransbehandlingar");
        lista.Add("Brynbehandlingar");
        lista.Add("Hudbehandlingar");
        lista.Add("Injektionsbehandlingar");
        lista.Add("Makeup");
        lista.Add("Hårborttaggning");
        lista.Add("Vaxningar");
        lista.Add("Naglar");


        foreach (var item in lista)
        {
            context.Categories.Add(
                new Categories
                {
                    CategoryName = item,
                    Saloons = l
                });
            context.SaveChanges();
        }
    }
}

И мой Global.asax

    public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        Database.SetInitializer(new DataInitializer());
        AreaRegistration.RegisterAllAreas();
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
}

Моя строка подключения

<connectionStrings>
    <add name="TurreKlippDb" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\TurreKlippDb.mdf;Initial Catalog=TurreKlippDb;Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>

1 Ответ

0 голосов
/ 17 мая 2018

Ваш код, кажется, в порядке (надеюсь, вы не получили ни ошибки компиляции, ни времени выполнения).База данных будет создана, только если вы попытаетесь получить доступ к объекту из вашей базы данных. Возможно, вы не пытались получить доступ к какому-либо объекту из вашей базы данных (например, показывать данные на странице индекса или что-то в этом роде).Если вы уже пытались получить доступ к своим данным, а база данных не была создана, вы получите ошибку.Если это так, то покажите нам эту ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...