一、上下文對象簡介 在MVC項目中添加一個EDMX文件的時候會添加很多文件進來,其中包括.Context.tt,和.tt這兩個T4模板,其中.Context.tt是用來生成上下文對象的T4模板,.tt生成實體類的T4模板。如圖: 實體框架 會幫我們生成XML文件和實體類,這裡它已經生成了我們要的XM ...
一、上下文對象簡介
在MVC項目中添加一個EDMX文件的時候會添加很多文件進來,其中包括.Context.tt,和.tt這兩個T4模板,其中.Context.tt是用來生成上下文對象的T4模板,.tt生成實體類的T4模板。如圖:
實體框架 會幫我們生成XML文件和實體類,這裡它已經生成了我們要的XML和實體類,但是我們如果我們要操作實體對象保存到資料庫中還是要通過EF上下文。
我們打開上下文對象.Context.tt文件,可以發現,上下文對象為我們的每一個表都生成了一個DbSet集合,如下圖
這個繼承DbContext的Nee32Entities對象就是EF提供給我們操作資料庫的介面,通過Nee32Entities這個對象,就可以把記憶體中的數據添加到資料庫中。
二、使用上下文對象增刪改查
這裡使用的是控制台應用程式來演示,先在資料庫建表,然後再新建一個控制台應用程式,添加EDMX文件, 導入需要操作的資料庫
2.1 新增
//通過EF 上下文對象新增到資料庫 Nee32Entities db = new Nee32Entities();//創建一個上下文對象 // 添加文章品類 static void AddCategory() { //創建實體對象 B_Category category = new B_Category() { CateDescribe = "test",CateName = "aaaaaaa",CreateTime = DateTime.Now,MemberID = 1,Status = 1 }; db.B_Category.Add(category);//將對象添加到 上下文對象 的B_Category集合中 db.SaveChanges();//調用上下文對象的保存方法,將對象存入資料庫 }
執行一下這個方法
數據中的內容
2.2 簡單查詢
// 查詢 static List<B_Category> QueryCate(string cateName) { var category = db.B_Category.Where(c => c.CateName.Contains(cateName)).ToList();//使用Lambda表達式 //var category = (from c in db.B_Category where c.CateName.Contains(cateName) select c).ToList();//使用Linq return category; }
2.3 修改
//修改 先查詢 再修改 static void EditCate() { B_Category category = db.B_Category.Where(c => c.ID == 1).FirstOrDefault();//先查找出要修改的對象 category.CateName = "bbbbbbbb";//修改數據 db.SaveChanges(); }
2.4 刪除
//刪除 static void DeleteCate() { //第一種 把要刪除的對象先查出來 B_Category category = db.B_Category.Where(c => c.ID == 1).FirstOrDefault(); //第二種 直接使用主鍵刪除 B_Category category = new B_Category() { ID = 1 }; db.B_Category.Attach(category);//將 通過主鍵 實例化的實體類附加到EF中 db.B_Category.Remove(category);//將 category從 上下文對象 的B_Category集合中移除 db.SaveChanges(); }