MVC 之 EF簡單增刪改查


一、上下文對象簡介

在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();
        }


免責聲明!

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



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