asp.net——疑难杂症①之项目运行时怎样通过实体类来自动创建数据表(EF-CodeFirst)
程序员文章站
2024-02-29 20:42:58
...
在网上下载了源码,该项目结构:
先看后台【ZSZ.AdminWeb】项目,打开Global.asax,发现 Application_Start方法里,并没有写好 自动生成数据表的code
不过还有这个项目【ZSZ.Service】,发现有 ZSZDbContext.cs(可以利用这个来自动生成数据表)
在这里,我们改一下这两个文件的代码:Global.asax、ZSZDbContext.cs
1.在ZSZDbContext.cs 注释掉 Database.SetInitializer<ZSZDbContext>(null);
2.在Global.asax,的Application_Start里添加代码:
Database.SetInitializer(
new CreateDatabaseIfNotExists<Service.ZSZDbContext>());
using (var context = new Service.ZSZDbContext())
{
context.Database.Initialize(true);
}
为什么要这么做?
因为项目每次运行时,都会执行 Global.asax里的Application_Start方法。
关于怎么控制自动生成数据表的详情可以看这里: