我尝试从实体框架代码创建数据库首先遵循本教程
http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part4-cs
但我使用SQL Server 2005而不是SQLExpress但是当我执行解决方案时没有任何创建。我的代码有什么问题
这是我的代码。
Movie.cs
public class Movie
{
public int ID { get; set; }
public string Title { get; set; }
public DateTime ReleaseDate { get; set; }
public string Genre { get; set; }
public decimal Price { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
这是我在web.config中的连接字符串
<add name="MovieDBContext"
connectionString="data source=...;Integrated Security=SSPI;initial catalog=MovieDB;User Id=...;Password=..."
providerName="System.Data.SqlClient" />
我的代码有什么问题?为什么没有创建数据库。
谢谢大家的帮助。答案 0 :(得分:3)
在第一次使用数据库之前,不会创建数据库。您必须执行以下任何操作才能触发数据库创建:
context.Database.CreateIfNotExists()
context.Database.Initialize(false)
context.Database.Create()
答案 1 :(得分:0)
您是否在Global.asax文件中的应用程序启动中添加了initialize方法
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MovieDBContext>());
答案 2 :(得分:0)
这是我的。我正在强制数据库初始化,然后放弃上下文,然后我强行播种它。我无法获得与Oracle和SQL CE一起使用的默认行为。
var initer = new PPContextInitializer();
Database.SetInitializer<MovieDBContext >(new DropCreateDatabaseIfModelChanges<MovieDBContext >());
using (var db = new MovieDBContext())
{
db.Database.Initialize(true);
}
using (var db1 = new MovieDBContext())
{
initer.Seed(db1);
}