首次接觸 ,就感覺非常棒。它節省了我們以前寫SQL語句的過程,同時也讓我們更加的理解面向對象的編程思想。最近學習了EF的增刪改查的過程,下麵給大家分享使用EF對增刪改查時如何處理的。 第一步:創建自定義的 來連接自己的資料庫。 1、新增操作 我們會根據前臺傳過來的實體信息對資料庫的表進行新增操作。對 ...
首次接觸Entity FrameWork
,就感覺非常棒。它節省了我們以前寫SQL語句的過程,同時也讓我們更加的理解面向對象的編程思想。最近學習了EF的增刪改查的過程,下麵給大家分享使用EF對增刪改查時如何處理的。
第一步:創建自定義的DbContext
來連接自己的資料庫。
public class DataBaseContext : DbContext
{
public DataBaseContext() : base("name=SQLCONN")
{
}
public DbSet<Model.Entities.StudentEntity> StudentEntities { get; set; }
}
1、新增操作
我們會根據前臺傳過來的實體信息對資料庫的表進行新增操作。對於以前使用SQL語句的方式,我們會寫很長的SQL語句來實現。而對於EF來說,只需要幾句簡單的代碼就可以搞定。
public void Insert(StudentEntity studentEntity)
{
if(studentEntity == null)
throw new ArgumentNullException(nameof(studentEntity));
using (DataBaseContext dataBaseContext = new DataBaseContext())
{
dataBaseContext.Set<StudentEntity>().Add(studentEntity);
dataBaseContext.SaveChanges();
}
}
2、刪除操作
對於刪除來說,通常我們使用軟刪除來操作。畢竟資料庫中數據儘量不要真的刪除了。那麼數據表中經常會設置一個IsDeleted
欄位。那麼我們只需要給IsDeleted
欄位賦值,重新再SaveChanges
就可以了。
public void Delete(int id)
{
if(id == 0)
throw new ArgumentNullException(nameof(id));
using (DataBaseContext dataBaseContext = new DataBaseContext())
{
StudentEntity studentEntity = dataBaseContext.Set<StudentEntity>().FirstOrDefault(t => t.Id == id);
if (studentEntity != null) studentEntity.Isdeleted = true;
dataBaseContext.SaveChanges();
}
}
3、修改操作
通過剛纔刪除操作的例子,我們可以知道刪除其實也就是修改方式的一種。我們只是對其中的一個欄位進行修改,然後在進行SaveChanges
操作。那麼對於修改操作,也是一樣的思想。不同的是修改操作會根據前臺傳過來的實體信息來給需要修改的欄位賦值或者實際場景的業務來進行修改。
public void Update(StudentEntity studentEntity)
{
if (studentEntity == null)
throw new ArgumentNullException(nameof(studentEntity));
using (DataBaseContext dataBaseContext = new DataBaseContext())
{
StudentEntity student = dataBaseContext.Set<StudentEntity>().FirstOrDefault(t => t.Id == studentEntity.Id);
if (student != null)
{
student.StuName = studentEntity.StuName;
student.StuNo = studentEntity.StuNo;
student.StuSex = studentEntity.StuSex;
student.Grade = studentEntity.Grade;
}
dataBaseContext.SaveChanges();
}
}
我們可以看到,不論是修改還是刪除,我們都會先從資料庫中查詢出對應的信息,然後再做對應的修改賦值操作,最後調用SaveChanges
方法。
備註:所有增刪改過程都需要調用SaveChanges
方法,這樣才能更新到資料庫中。
4、查詢操作
對於查詢來說,一般會有查詢所有實體信息和根據主鍵查詢單個實體信息。
查詢所有實體
public List<StudentEntity> GetList()
{
using (DataBaseContext dataBaseContext = new DataBaseContext())
{
List<StudentEntity> studentEntities = dataBaseContext.Set<StudentEntity>().ToList();
return studentEntities;
}
}
主鍵查詢單個實體
public StudentEntity GetEntity(int id)
{
if (id == 0)
throw new ArgumentNullException(nameof(id));
using (DataBaseContext dataBaseContext = new DataBaseContext())
{
StudentEntity studentEntity = dataBaseContext.Set<StudentEntity>().FirstOrDefault(t => t.Id == id);
return studentEntity;
}
}
完整案例
public class StudentService
{
public List<StudentEntity> GetList(string stuName, string stuNo)
{
using (DataBaseContext dataBaseContext = new DataBaseContext())
{
List<StudentEntity> studentEntities;
if (!string.IsNullOrEmpty(stuName))
{
studentEntities = dataBaseContext.Set<StudentEntity>().Where(t => t.StuName == stuName).ToList();
}
else if (!string.IsNullOrEmpty(stuNo))
{
studentEntities = dataBaseContext.Set<StudentEntity>().Where(t => t.StuNo == stuNo).ToList();
}
else
{
studentEntities = dataBaseContext.Set<StudentEntity>().ToList();
}
return studentEntities;
}
}
public void Insert(StudentEntity studentEntity)
{
if(studentEntity == null)
throw new ArgumentNullException(nameof(studentEntity));
using (DataBaseContext dataBaseContext = new DataBaseContext())
{
dataBaseContext.Set<StudentEntity>().Add(studentEntity);
dataBaseContext.SaveChanges();
}
}
public void Update(StudentEntity studentEntity)
{
if (studentEntity == null)
throw new ArgumentNullException(nameof(studentEntity));
using (DataBaseContext dataBaseContext = new DataBaseContext())
{
StudentEntity student = dataBaseContext.Set<StudentEntity>().FirstOrDefault(t => t.Id == studentEntity.Id);
if (student != null)
{
student.StuName = studentEntity.StuName;
student.StuNo = studentEntity.StuNo;
student.StuSex = studentEntity.StuSex;
student.Grade = studentEntity.Grade;
}
dataBaseContext.SaveChanges();
}
}
public void Delete(int id)
{
if(id == 0)
throw new ArgumentNullException(nameof(id));
using (DataBaseContext dataBaseContext = new DataBaseContext())
{
StudentEntity studentEntity = dataBaseContext.Set<StudentEntity>().FirstOrDefault(t => t.Id == id);
if (studentEntity != null) studentEntity.Isdeleted = true;
dataBaseContext.SaveChanges();
}
}
public StudentEntity GetEntity(int id)
{
if (id == 0)
throw new ArgumentNullException(nameof(id));
using (DataBaseContext dataBaseContext = new DataBaseContext())
{
StudentEntity studentEntity = dataBaseContext.Set<StudentEntity>().FirstOrDefault(t => t.Id == id);
return studentEntity;
}
}
public List<StudentEntity> GetList()
{
using (DataBaseContext dataBaseContext = new DataBaseContext())
{
List<StudentEntity> studentEntities = dataBaseContext.Set<StudentEntity>().ToList();
return studentEntities;
}
}
}
有不對的地方請各位批評指正,互相學習!