1.新建一个类库项目
2.右键管理Nuget程序包,搜索EntityFramework.然后安装
3.新建一个类,然后引用 using System.Data.Entity; 然后写类初始化方法(base中的字符串为数据库的配置名称)
4.在App.config中添加数据库链接配置(注意:该配置放在主项目中,此项目为类库项目不能直接运行,所以此配置放在主项目中,若放在该类库项目中
则初始化时会从主项目中寻找该配置.而主项目没有的话则会生成到vs默认的本地数据库).
5.然后点击工具->nuget包管理器->程序包管理器控制台执行 enable-migrations –EnableAutomaticMigration:$true
之后会自动创建一个继承自DbMigrationConfiguration类的Configuration类.并修改一个默认属性
6.新建一个类,创建完之后在自己创建的DbContext类(第三步)中添加对应的类的信息.
7.CodeFirst有两种创建更新数据库的方式分别是自动和控制台
自动
1.自动合并更新配置在第五步中的两个属性中的第一个自动更新属性配置为True了;
2.调用 Database.SetInitializer(new MigrateDatabaseToLatestVersion<CodeFirstDbContext, CodeFirst.Migrations.Configuration>());
(此处放在主项目的Global.asax.cs -> Application_Start ()方法中.这样只会执行一次跟新合并数据库)
3.实例化CodeFirstDbContext.并执行查询
using (var ctx = new CodeFirstDbContext())
{
var studentName = ctx.Database.SqlQuery<User>("Select * from Users where id=@id", new SqlParameter("@id", 1))
.ToList();
}
此处执行完毕之后数据库才会合并跟新,如不实例化并查询.并不会合并更新数据库
控制台
1-Add-Migration FirstInit
2.Update-Database
① updata-database [-verbose]
在程序包控制台中执行这条命令时,会执行Add-Migration命令创建的最新的迁移文件,并更新数据库。
执行完上边三步数据库就生成了,以后当我们修改实体类时,执行Add-Migration [MigName]后再执行Update-Database [-verbose],就可方便地根据模型的变化更新数据库。
② update-database -TargetMigration:xxx
如果我们想回退到某一个版本时执行:
update-database -TargetMigration:FirstInit//数据库回退到第一次的版本