【发布时间】:2017-10-04 11:47:29
【问题描述】:
我有几个模型(类)。
City.cs:
public class City
{
[ScaffoldColumn(false)]
public int CityID { get; set; }
public string Name { get; set; }
public virtual ICollection<Course> Courses { get; set; }
}
课程.cs:
public class Course
{
[ScaffoldColumn(false)]
public int ID { get; set; }
public string Faculty { get; set; }
public int CityID { get; set; }
}
CourseDatabaseInitializer.cs:
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
namespace CoursesApplication.Models
{
public class CourseDatabaseInitializer : DropCreateDatabaseAlways<CourseContext>
{
CourseContext _Context = new CourseContext();
protected override void Seed(CourseContext context)
{
GetCities().ForEach(c => context.Cities.Add(c));
}
private static List<City> GetCities()
{
var cities = new List<City> {
new City
{
CityID = 1,
Name = "Paris"
}
};
return cities;
}
public List<Course> GetCourses()
{
return (from c in _Context.Courses select c).ToList();
}
}
}
CourseContext.cs:
using System.Data.Entity;
namespace CoursesApplication.Models
{
public class CourseContext : DbContext
{
public CourseContext(): base("CoursesApplication")
{
}
public DbSet<Course> Courses { get; set; }
public DbSet<City> Cities { get; set; }
}
}
还有我的 Global.asax.cs 文件:
void Application_Start(object sender, EventArgs e)
{
// Code that runs on application startup
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
// Initialize the Courses database.
Database.SetInitializer(new CourseDatabaseInitializer());
}
,但是当我运行应用程序时,一切正常。之后在解决方案资源管理器中创建连接,但没有带表的数据库。这是我的web.config,带有连接字符串:
<add name="CourseContext"
connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\courses.mdf;
Integrated Security=True"providerName="System.Data.SqlClient" />
问题可能出在哪里? 我将 NET Framework 4.6.1 与 Sql Express 2016 一起使用。 这是 ASP.NET WEB 窗体项目。
【问题讨论】:
-
在哪里检查数据库是否是在 SSMS 上创建的?
-
SSMS 和 VS 中的服务器资源管理器,服务器名称为
(LocalDb)\MSSQLLocalDB,这是Web.config中的connectionString的一部分 -
您是否运行过
enable-migrations,然后运行add-migration Init,然后运行update-database来创建数据库? -
同样的事情,没有创建数据库。
-
执行这些命令后,我看到文件夹
Migrations里面有几个文件,但是数据库仍然没有创建。
标签: c# asp.net entity-framework asp.net-mvc-4 webforms