第五章:創建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。並做了一些配置,配置的說明在代碼中已經標注了,具體作用我就不再說明了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM