启动我的应用程序时,不再创建我的数据库。我们是四个人在同一个项目上工作,只有我才能在启动时创建数据库。它以前工作,我不知道我改变了什么。我已经多次删除了该项目,并从我们的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>
答案 0 :(得分:0)
您的代码似乎没问题(我希望您没有得到任何编译或运行时错误)。 只有当您尝试从数据库访问对象时才会创建数据库。可能您没有尝试从数据库访问任何对象(例如:在索引页面上显示数据或其他内容)。如果您已经尝试访问数据并且数据库没有创建,那么您将收到错误。如果是这样,那么告诉我们错误。