EFCore的CURD基本操作
一、增加
-
单笔增加
//添加 static void Add() { using (var db = new Entities()) { Student stu1 = new Student { Name = "李四", Age = 19, Adress = "合肥", PhoneNumber = "13200000000" }; //把实体对象附加到上下文 db.Student.Add(stu1); //db.Entry(stu1).State=System.Data.Entity.EntityState.Added; var res = db.SaveChanges(); if (res > 0) { Console.WriteLine("添加数据成功!"); } } }
-
批量增加
//批量处理 static void AddBatch() { using (var db = new Entities()) { for (int i = 1; i < 10; i++) { var stu1 = new Student { Name = "Rimche" + i, Age = 19 + i, Adress = "合肥", PhoneNumber = "1730000000" + i }; db.Student.Add(stu1); } //可以进行其他操作 db.SaveChanges(); } }
二、查询
-
普通查询
//查询 static void Query() { using (var db = new Entities()) { //根据ID进行查询 var stu1 = db.Student.Find(2); var stu11 = db.Student.Where(x => x.Id == 1).FirstOrDefault(); //根据年龄查找,多个结果时,返回第一个 var stu2 = db.Student.Where(s=>s.Age==18).FirstOrDefault(); Console.WriteLine(stu1.Name); Console.WriteLine(stu2.Name); Console.WriteLine("======延迟查询======"); //根据条件,返回IQueryable,说明是延迟查询 var query = db.Student.Where(s => s.Id > 3); foreach (var item in query) { Console.WriteLine(item.Id + "\t" + item.Name); } //查询所有 Console.WriteLine("======查询所有======"); var queryall=db.Student.ToList(); foreach (var item in queryall) { Console.WriteLine(item.Id + "\t" + item.Name); } }; }
-
分页查询
//分页查询 static void PagingQuery(int pageIndex,int pageSize) { using (var db=new Entities()) { //分页一定要排序 var query = db.Student.OrderBy(s=>s.Id).Skip((pageIndex -1)*pageSize).Take(pageSize).ToList(); foreach (var item in query) { Console.WriteLine(item.Id + "\t" + item.Name); } } }
三、更新
提供两种更新方式
//更新
static void Update()
{
using (var db =new Entities())
{
//方式一:官方推荐 只会修改需要修改字段
Student stu = db.Student.Where(s => s.Id == 1).FirstOrDefault();
stu.Name = "李时珍";
db.SaveChanges();
//方式二:修改所有字段
Student stu1 = db.Student.Where(s => s.Id == 2).FirstOrDefault();
stu1.Age = 10;
db.Entry(stu1).State = System.Data.Entity.EntityState.Modified;
db.SaveChanges();
}
}
四、删除
提供两种删除方式
static void Delete()
{
using (var db = new Entities())
{
var stu = db.Student.Find(2);//也可以从数据库查询到
//方式一
//db.Student.Remove(stu);
//方式二
db.Entry(stu).State = System.Data.Entity.EntityState.Deleted;
int result = db.SaveChanges();
Console.WriteLine(result);
}
}
本文来自博客园,作者:码农阿亮,转载请注明原文链接:https://www.cnblogs.com/wml-it/p/15903677.html
技术的发展日新月异,随着时间推移,无法保证本博客所有内容的正确性。如有误导,请大家见谅,欢迎评论区指正!
开源库地址,欢迎点亮:
GitHub:https://github.com/ITMingliang
Gitee: https://gitee.com/mingliang_it
GitLab: https://gitlab.com/ITMingliang
建群声明: 本着技术在于分享,方便大家交流学习的初心,特此建立【编程内功修炼交流群】,为大家答疑解惑。热烈欢迎各位爱交流学习的程序员进群,也希望进群的大佬能不吝分享自己遇到的技术问题和学习心得!进群方式:扫码关注公众号,后台回复【进群】。