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

 

posted @ 2023-05-01 21:49  应世玉  阅读(60)  评论(0编辑  收藏  举报