分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

.NET Entity Framework基本使用方法

发布时间:2023-09-06 02:12责任编辑:郭大石关键词:.NET

生成模型

 

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); ???????}

.NET Entity Framework基本使用方法

原文地址:https://www.cnblogs.com/xiaoliwang/p/9545770.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved