CodeFirst数据库重建问题,懂的进
public class UserModel
{
public int ID { get; set; }
public string Name { get; set; }
public virtual ClassModel UserClass { get; set; }
}
public class ClassModel
{
public int ID { get; set; }
public string ClassName { get; set; }
public virtual List<UserModel> classUser { get; set; }
}
public class myDBContext : DbContext
{
public DbSet<UserModel> UserModels { get; set; }
public DbSet<ClassModel> ClassModels { get; set; }
}
public class myDBContextInit : CreateDatabaseIfNotExists<myDBContext>
{
protected override void Seed(myDBContext DB)
{
ClassModel class1 = new ClassModel { ClassName = "Class1" };
DB.ClassModels.Add(class1);
DB.UserModels.Add(new UserModel { Name = "User1", UserClass = class1 });
DB.UserModels.Add(new UserModel { Name = "User2", UserClass = class1 });
DB.SaveChanges();
}
}
Global.asax appstart
Database.SetInitializer(new myDBContextInit());
第一次运行时候创建了 LocalDB,然后,我手动删除了 app_data下面的mdf数据库文件,再重新运行app,
没有自动重建mdf文件,而是报错
Cannot attach the file '\App_Data\Web.myDBContext.mdf' as database 'Web.myDBContext'.
按理我继承 CreateDatabaseIfNotExists 应该是会重新创建的!
Default.aspx页面
--------------------编程问答-------------------- 知道codefirst,但从来没用过。。。。。
myDBContext DB = new myDBContext();
foreach (ClassModel c in DB.ClassModels.ToList())
{
Response.Write("c:"+c.ClassName);
foreach (UserModel u in c.classUser)
{
Response.Write("<br />---u:" + u.Name);
}
}
要DDD也没必要codefirst吧。。。。 --------------------编程问答-------------------- 看下这篇教程:http://msdn.microsoft.com/en-us/data/jj591621.aspx --------------------编程问答--------------------
感谢大哥的回复,场景有点不一样,我平时更新数据是用Migrations,但是现在还没用到这一步。
我的场景是这样的,我在vs上创建了用CodeFirst第一次创建了数据库成功,我建立了很多测试数据,现在要把代码移交给其他部门,所以我copy了项目给他们(除了APP_DATA这个文件夹,因为里面有我的私人数据),我想他们运行项目的时候第一次就会创建一个新的数据库了!但我copy了给他们,他们第一次运行一直报无法找到 app_data/xx.mdf 文件,按理我继承了CreateDatabaseIfNotExists ,项目找不到数据库应该会自动重建的,现在不会自动重建,想找出问题在哪里。。。。 --------------------编程问答--------------------
你是怎么用的?看看这个帖子:
http://stackoverflow.com/questions/5414130/entity-framework-code-first-isnt-creating-the-database --------------------编程问答-------------------- @webdiyer
http://pan.baidu.com/share/link?shareid=1697330141&uk=1528043962
项目文件在这里 可以下载下来看看,直接F5就行
补充:.NET技术 , ASP.NET