首页
视频
资源
登录
原
EF删除与批量删除。Entity Framework删除与批量删除
6936
人阅读
2020/5/13 22:59
总访问:
575058
评论:
0
收藏:
0
手机
分类:
ORM
[TOC] ###EF删除 ####方法1:直接执行数据库 ``` int count = oapEntities.Database.ExecuteSqlCommand("delete from users where id=@userid", new SqlParameter("userid", userId)); ``` 需要自己去写sql语句 ####方法2:先查询数据库在删除 1:先根据id查询需要删除的对象 ``` Users users = oapEntities.Users.Where(a => a.Id == userId).FirstOrDefault(); ``` 2:修改删除的状态 ``` oapEntities.Users.Remove(users); ``` >注意这一步只是修改一个状态而已不会真正的删除 3:执行保存数据库操作,这一步才会把真正的操作反应的数据库 ``` int count = oapEntities.SaveChanges(); ``` ####方法3:不需要自己写sql语句,而且也不需要查询一次数据库 自己实例化一个直接修改状态就不用去重新查询一次,这样就可以节省效率 ``` Users users = new Users() { Id = userId }; //修改他的状态为删除 oapEntities.Entry(users).State = System.Data.Entity.EntityState.Deleted; ``` tip:当然也需要调用SaveChanges进行保存更改到数据库 ####三种方法的效率对比 理论上来说:第一章最快,然后是第三种,第二种最慢 第二种最慢:是相比其他两种他不仅需要删除,而且督多了一个查询数据库的步骤 第三种理论上比第一种慢的原因:是因为第三种他多了生成sql语句的过程,第一种sql语句是直接写出来的 ###批量删除 >注意批量删除尽量避免循环操作数据库 第一步:获取需要删除的id ``` //第一步:找到所有需要删除的id $("#userTable input[type='checkbox']:checked").each(function () { ids += $(this).val() + ","; }); ``` 第二步:把id传到后台,把这些id的状态都修改成删除 ``` public ActionResult BatchDelete(string userIds) { //先实例化ef的上下文对象 oapEntities oapEntities = new oapEntities(); //去掉最后一个逗号 string trimUserIds = userIds.TrimEnd(','); List<string> userIdList = trimUserIds.Split(',').ToList(); //循环修改id涉及到用户的状态 foreach (string item in userIdList) { Users users = new Users() { Id = Convert.ToInt32(item) }; oapEntities.Entry(users).State = System.Data.Entity.EntityState.Deleted; } int count = oapEntities.SaveChanges();//保存数据库的方法,返回受影响的行数 return Json(count); } ``` 第三步:调用saveChanges方法即可 oapEntities.SaveChanges();保存数据库的方法,返回受影响的行数,真正执行数据库操作的地方, >注意不要循环的去执行oapEntities.SaveChanges(),这样他就是循环的执行数据库了 ###作业: 1:实现删除和批量删除 2:批量删除的时候前台即时删除
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
👈{{preArticle.title}}
👉{{nextArticle.title}}
评价
{{titleitem}}
{{titleitem}}
{{item.content}}
{{titleitem}}
{{titleitem}}
{{item.content}}
TeachingNote
这一生多幸运赶上过你.
博主信息
排名
6
文章
6
粉丝
16
评论
8
文章类别
.net
36篇
后端
5篇
ORM
16篇
前端
48篇
随笔
13篇
移动开发
6篇
数据库
6篇
英语
3篇
rabbitmq
1篇
.net core
5篇
unity
1篇
k8s
1篇
云服务
1篇
DDD
1篇
网络
1篇
更多
mysql
1篇
python
2篇
docker
1篇
最新文章
最新评价
{{item.articleTitle}}
{{item.blogName}}
:
{{item.content}}
关于我们
ICP备案 :
渝ICP备18016597号-1
网站信息:
2018-2024
TNBLOG.NET
技术交流:
群号656732739
联系我们:
contact@tnblog.net
欢迎加群
欢迎加群交流技术