C# 代码优先实体框架不使用表创建数据库
我有两个模型(类) City.cs:C# 代码优先实体框架不使用表创建数据库,c#,asp.net,entity-framework,asp.net-mvc-4,webforms,C#,Asp.net,Entity Framework,Asp.net Mvc 4,Webforms,我有两个模型(类) City.cs: public class City { [ScaffoldColumn(false)] public int CityID { get; set; } public string Name { get; set; } public virtual ICollection<Course> Courses { get; set; } } CourseDatabaseInitializer.cs: using Sys
public class City
{
[ScaffoldColumn(false)]
public int CityID { get; set; }
public string Name { get; set; }
public virtual ICollection<Course> Courses { 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();
}
}
}
,但当我运行应用程序时,一切都正常。之后,我在解决方案资源管理器中创建连接,但没有包含表的数据库。这是我的web.config
,带有连接字符串:
<add name="CourseContext"
connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\courses.mdf;
Integrated Security=True"providerName="System.Data.SqlClient" />
问题出在哪里?
我在Sql Express 2016中使用NET Framework 4.6.1。
这是ASP.NET WEB表单项目。在
CourseContext
中尝试更改此项目
public CourseContext(): base("CoursesApplication")
{
}
对此
public CourseContext(): base("CourseContext")
{
}
或者删除
:base(“CoursesApplication”)
在哪里检查数据库是否是在SSMS上创建的?SSMS和VS中服务器名为(LocalDb)的服务器资源管理器\MSSQLLocalDB
是Web.config
中的connectionString
的一部分,您是否运行了启用迁移
然后添加迁移初始化
然后更新数据库
来创建数据库?同样,不会创建数据库。执行这些命令后,我看到文件夹Migrations
中有几个文件,但数据库仍然没有创建。
<add name="CourseContext"
connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\courses.mdf;
Integrated Security=True"providerName="System.Data.SqlClient" />
public CourseContext(): base("CoursesApplication")
{
}
public CourseContext(): base("CourseContext")
{
}