Cannot Generate Database from Entity Framework 4.1 Codefirst With SQL Server 2005

痞子三分冷 提交于 2019-12-11 07:39:27

问题


I try to create database from entity framework code first follow with this tutorial

http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part4-cs

but I use SQL Server 2005 instead when SQLExpress but When I execute solution don't have anything create. What wrong with my code

This is my code.

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; }
}

And this is my connection string in web.config

<add name="MovieDBContext" 
     connectionString="data source=...;Integrated Security=SSPI;initial catalog=MovieDB;User Id=...;Password=..."
     providerName="System.Data.SqlClient" />

What Wrong with my code? Why database wasn't created.

thank you every one to help me.


回答1:


The database is not created until it is used for the first time. You must do any of following to trigger database creation:

  • Create instance of your context and retrieve or persist any data
  • Create instance of your context and call context.Database.CreateIfNotExists()
  • Create instance of your context and call context.Database.Initialize(false)
  • Create instance of your context and call context.Database.Create()



回答2:


Have you added initialize methid in application start in your Global.asax file

 Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MovieDBContext>());



回答3:


Here's mine. I'm forcing database init, then ditching the context, then I'm force seeding it. I couldn't get the default behaviour to work with both Oracle and 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);
}


来源:https://stackoverflow.com/questions/6662491/cannot-generate-database-from-entity-framework-4-1-codefirst-with-sql-server-200

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!