以下是我的解决方案的概述:

这是我的PizzaSoftwareData类:
namespace PizzaSoftware.Data
{
public class PizzaSoftwareData : DbContext
{
public DbSet<Customer> Customers { get; set; }
public DbSet<Order> Orders { get; set; }
public DbSet<Product> Products { get; set; }
public DbSet<User> Users { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
根据Scott Guthrie博客上的一个示例,您必须在应用程序的开头运行此代码才能创建/更新数据库架构.
Database.SetInitializer<PizzaSoftwareData>(new CreateDatabaseIfNotExists<PizzaSoftwareData>());
Run Code Online (Sandbox Code Playgroud)
我在PizzaSoftware.UI中运行Program.cs中的那行代码.
namespace PizzaSoftware.UI
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Database.SetInitializer<PizzaSoftwareData>(new CreateDatabaseIfNotExists<PizzaSoftwareData>());
Application.Run(new LoginForm());
}
}
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我为什么数据库没有创建表? …
出于某种原因,我无法让我的应用程序在应用程序启动时使用一些测试数据为数据库播种.
执行顺序:
1) Application_Start() in Global.asax
- Database.SetInitializer<LocatorContext>(new DropCreateDatabaseAlways<LocatorContext>());
- new LocatorContext.DropCreateIfChangeInitializer()
.InitializeDatabase(new LocatorContext());
2) onModelCreating() in my DBContext class
3) Page is rendered and no data is inserted into the database
Run Code Online (Sandbox Code Playgroud)
任何关于为什么或如何解决它的想法将非常感激.
我的Global.asax.cs文件
//Global.asax.cs
protected void Application_Start()
{
Database.SetInitializer<LocatorContext>(new DropCreateDatabaseAlways<LocatorContext>());
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
Run Code Online (Sandbox Code Playgroud)
我的DBContext类
//ClubLocatorContext.cs
using System;
using System.Collections.Generic;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Linq;
using System.Web;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using ClubLocator.Models;
using ClubLocator.Models.ViewModels;
namespace ClubLocator.DAL
{
public class LocatorContext : DbContext
{
public DbSet<Prospect> Prospects { get; set; …Run Code Online (Sandbox Code Playgroud)