EF.Core 增删改查
1 using(MyDbContext db = new MyDbContext) 2 { 3 //添加 4 var blog = new db.Nblog () 5 blog.title="添加标题"; 6 blog.desc="添加内容"; 7 db.Nblog.Add(blog); 8 db.SaveChangs(); 9 //await db.SaveChangesasync();//异步执行 10 }
修改和删除内容要先查询出来在进行修改和删除
查询
var blog = db.Nblog .Where(b => b.Look > 3) .OrderBy(b => b.Id) .First(); var blog = db.Nblog .Single(b => b.Title == "1234567"); var blog = db.Nblog .Where(b => b.Look > 3) .OrderBy(b => b.Id) .ToList(); ……
修改
blog.Title="abcde"; db.SaveChanges() //await db.SaveChangesasync();//异步执行
删除
//single出1条 db.Nblog.Remove(blog); db.SaveChanges(); //await db.SaveChangesasync();//异步执行
分页查询
var blog = db.Nblog .Where(b => b.Look > 3 || ( b.Look != 4 && b.Look !=5) .ToList(); var blog = db.Nblog .FromSql("select * from nblog") .AsEnumerable(); //使用 LINQ 运算符在初始的原始 SQL 查询基础上进行组合会出现以下这种问题 //这是因为使用 LINQ 运算符在初始的原始 SQL 查询基础上进行组合。 EF Core 将其视为子查询,并在数据库中对其进行组合,导致查询出错 //解决方案就是阻止查询运算操作的组合,在 FromSql 方法之后立即使用 AsEnumerable 或 AsAsyncEnumerable 方法,确保 EF Core 不会尝试对存储过程进行组合。 //其中pn为页码,pz为页大小 var list = blog.Skip((pn-1)*pz).Take(pz).ToList();