1.DBFirst 现有数据库 用数据库生成 对应的实体
edmx 文件 (包含 .tt 模板 Contentext.cs 上下文操作 Desinger.cs 设计文件 diagram.cs 描述文件 Model.tt 实体模板)
2.CodeFirst 创建数据库
映射策略:
//一:数据库不存在时重新创建数据库
Database.SetInitializer<DbContext>(new CreateDatabaseIfNotExists<DbContext>());
//二:每次启动应用程序时创建数据库
//Database.SetInitializer<DbContext>(new DropCreateDatabaseAlways<DbContext>());
//三:模型更改时重新创建数据库
//Database.SetInitializer<DbContext>(new DropCreateDatabaseIfModelChanges<DbContext>());
//四:从不创建数据库
//Database.SetInitializer<DbContext>(null);
3.CodeFirstFromDB
映射 表面映射 字段映射
code first 优势:文件少,直观
4.ModelFirst
空实体生成sql语句
EF的几种状态:
EntryState
EF缓存:
Find 优先缓存,可以多用 AsNoTracking
EF的修改策略:
1.先查询,在修改
2.全部修改
3.设置属性按需修改
4.Json格式,修改时自己解析拼装