第五章:创建DbContext
2016-06-22 00:14
344 查看
一、DbContext介绍
DbContext是Entity Framework(EF)操作数据库的上下文网关(接口)。我们对数据库的所有操作都是通过DbContext完成的。下面我们将讨论在code first模式下如何创建自己的DbContext并配置优化。二、创建DbContext
代码如下:using System; using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; using System.Text; using System.Threading.Tasks; using OwinW.Core.Entity; using System.Data.Entity.ModelConfiguration.Conventions; namespace OwinW.Core.EFHelper { /// <summary> /// EF访问数据库的接口 /// </summary> public class MyDbContext : System.Data.Entity.DbContext { //在config中配置数据库的名称 private static string dbName = System.Configuration.ConfigurationManager.AppSettings["dbName"]; public MyDbContext() : base(dbName) { //解决团队开发中,多人迁移数据库造成的修改覆盖问题。 Database.SetInitializer<MyDbContext>(null); //base.Configuration.AutoDetectChangesEnabled = false; ////关闭EF6.x 默认自动生成null判断语句 //base.Configuration.UseDatabaseNullSemantics = true; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { //表名不用复数形式 modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); //移除一对多的级联删除约定,想要级联删除可以在 EntityTypeConfiguration<TEntity>的实现类中进行控制 modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>(); //多对多启用级联删除约定,不想级联删除可以在删除前判断关联的数据进行拦截 modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>(); base.OnModelCreating(modelBuilder); } //下面放置的是数据库对应的实体对象 //格式如下: public DbSet<Demo> Demo { get; set; } } }
三、小结
上面我们就创建了一个自定义的DbContext。并做了一些配置,配置的说明在代码中已经标注了,具体作用我就不再说明了。相关文章推荐
- HDU 5695 Gym Class
- 使用CLion单步调试Caffe
- 专题四 第三个题
- RxJava学习笔记---简单使用
- Mac系统下, Hdoop 2.6.2 + Hive 2.0.1 配置
- 【 学习笔记 】memcached基础知识
- C# Get/Post 模拟提交
- 利用 Android 手机打造来电通知计划
- HDU-3507-Print Article-斜率优化-DP
- ESXi 强制4G内存解决(VMware ESXi 6.0.0.update02 )
- 物理术语的理解
- 字符串转换成整数,atoi实现
- spl_autoload_register()函数
- 线程番外篇(一)wait(),notify(),notifyAll()
- CookContainer 序列化保存
- 学校扼杀创造力---Ken Robinson(于2006发布于TED)
- Angular中的内置指令和自定义指令
- 获取系统版本
- JAVA中静态代理和动态代理
- c#正则表达式2