标签:img rom col 上下 esc div net 图片 amp
生成模型
EF有两种查询方式,Linq查询 、Lambda表达式
//普通查询 Linq 方式
IQueryable<Book> list = from b in db.Set<Book>()
where b.BookId > 5 && b.TypeId == 3
select b;
//普通查询 Lambda 方式
IQueryable<Book> list1 = db.Set<Book>()
.Where(b => b.BookId > 5 && b.TypeId == 3);
//多表查询 Linq
var list = from book in db.Set<Book>()
join bookType in db.Set<BookType>()
on book.TypeId equals bookType.TypeId
select new
{
book
};
//多表查询 lambda
var list = db.Set<Book>()
.Where(u => u.BookId > 2 && u.TypeId == 4)
.Join(db.Set<BookType>(), book => book.TypeId, tp => tp.TypeId, (book, tp) => new { book, tp });
//延迟加载 使用时才查询数据库 没用一次就查一次 IQueryable<Book> list = db.Set<Book>() .OrderByDescending(u => u.BookId) //IQueryable对象中Expression方法默认将Lambda表达式转换成Expression对象 .Skip(2) .Take(3); //不具备延迟加载,因为IEnumerable没有方法去拼接完整sql语句 IEnumerable<Book> list1 = db.Set<Book>() .AsEnumerable() //把结果强转成 IEnumerable 类型 .OrderByDescending(u => u.BookId) .Skip(2) .Take(3);
增加数据
[HttpPost] public ActionResult Add(Book book) { DbContext db = new DbModel(); db.Set<Book>().Add(book); //返回受影响行数 if(db.SaveChanges() > 0) { return Json(new { msg = "添加成功" }); }else { return Json(new { msg = "添加失败" }); } }
修改数据
[HttpPost] public ActionResult Edit(Book bb) { DbContext db = new DbModel(); //将对象附加到上下文 状态设置为未更改 db.Set<Book>().Attach(bb); db.Entry(bb).State = EntityState.Modified; db.SaveChanges(); return Json(new { msg = "修改成功" }); }
删除数据
public ActionResult Delete(int id) { DbContext db = new DbModel(); Book book = db.Set<Book>().FirstOrDefault(b => b.BookId == id); db.Set<Book>().Remove(book); db.SaveChanges(); return Json(new { msg = "删除成功" },JsonRequestBehavior.AllowGet); }
标签:img rom col 上下 esc div net 图片 amp
原文地址:https://www.cnblogs.com/xiaoliwang/p/9545770.html