MVC+EF的簡單增刪改查

一,瞭解Entity Framework

實體框架(Entity Framework)是微軟以ADO.Net爲基礎開發出來的對象關係映射(ORM)解決方案,它解決了對象持久化問題,將程序員從編寫麻煩的SQL語句當中解放出來。

相對於傳統的ADO等各種數據庫操縱技術來說,微軟的ADO.Net更爲先進,它封裝了很多底層操作,抽象了接口,針對接口編程,將調用統一化。

二,Entity Framework的應用

在MVC中創建EF框架進行增刪改查

  1. 新建一個MVC項目

在這裏插入圖片描述
在這裏插入圖片描述

  1. 導入數據庫實體模型

    在Models文件夾內添加一個新建項,在Data裏面點擊ADO.NET 實體數據模型,選擇數據庫,添加實體模型

  2. 在ClassInfo表中增加一條數據

//新增
var classinfo = new ClassInfo()
{
     Name = "2018173807",
     Remark = "七班",
     TeacherID = 1,
     Term = 2

};
//第一種方法   使用Add()方法添加
 db.ClassInfos.Add(classinfo); 
//第二種方法   講狀態改爲Added實現添加  
db.Entry(classinfo).State = System.Data.Entity.EntityState.Added;
db.SavaChange();
     


//批量新增
List<ClassInfo> classes = new List<ClassInfo>()
{
      new ClassInfo()
      {
             Name="2018173808",
             Remark="七班",
             TeacherID=1,
             Term=2

        },
        new ClassInfo()
        {
               Name="2018173808",
               Remark="七班",
               TeacherID=1,
               Term=2

          }

};
db.ClassInfos.AddRange(classes);
db.SavaChange();

  1. 修改ClassInfo表的一條數據
//修改2種方式
//一,先查詢,修改整個屬性,不會影響其他屬性變化
var classinfo1 = db.ClassInfos.Find(1);
classinfo1.Remark = "六班";
db.SavaChange();

//二,new對象,將對象的狀態改爲修改狀態,弊端是會將未賦值屬性設置爲空
ClassInfo  classinfo2= new ClassInfo()
{
     ID=1,
     Name="2018173805",
     Term=1,
     TeacherID=1,
     Remark="五班"
};
db.Entry(classinfo2).State = System.Data.Entity.EntityState.Modified;
db.SavaChange();

  1. 刪除ClassInfo表的一條數據
//刪除兩種方式
//先根據ID查詢,再刪除
var c1 = db.ClassInfos.Find(1);
db.ClassInfos.Remove(c1);
db.SavaChange();

//new一個對象,將狀態改爲刪除狀態
var c2 = new ClassInfo()
{
    ID=1
};
db.Entry(c2).State = System.Data.Entity.EntityState.Deleted;
db.SavaChange();




//批量刪除
List<ClassInfo> info1 = db.ClassInfos.Where(p => p.Remark == "五班").ToList();
db.ClassInfos.RemoveRange(info1);
db.SavaChange();

  1. 查詢
 //精確查詢,查詢班級號爲2018173806的
 var classInfos1 = db.ClassInfos.Where(p => p.Name == "2018173806").ToList();

//模糊查詢,查詢班級號含有2018的
var classInfos2 = db.ClassInfos.Where(p => p.Name.Contains("2018")).ToList();

//組合查詢,查詢學期是1同時老師也是1的
var classInfo3 = db.ClassInfos.Where(p => p.Term == 1 && p.TeacherID == 1).ToList();

//組合查詢,查詢學期是2或者老師是2的
var classInfo4 = db.ClassInfos.Where(p => p.Term == 2 || p.TeacherID == 2).ToList();

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章