第五章:创建DbContext

一、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。并做了一些配置,配置的说明在代码中已经标注了,具体作用我就不再说明了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值