EF如何做到不查询直接删除?

Brown_Sugar 2017-03-15 11:52:11
我用的是EF6
我的问题是这样的,之前学习EF技术的时候看到网上其他人说的无查询更新,这样saveChange的时候可以只生成update语句,不需要先查询,大体思路就是new一个实体对象把他attach上去然后修改这个实体的状态,以及修改表示字段是否被修改的属性.
后来我就自己想到用同样思路实现无查询删除数据,但是用这种方法有一个局限,那就是生成的sql语句中where条件只会根据那张表的主键来判断。
比如有一张Student表,有ID和Name两列,ID是主键, 那么我new一个实体对象给ID和Name都赋值,然后attch上去修改实体状态为delete,然后saveChange,结果生成的sql语句中where条件也只是判断Id是不是我赋的值,而我想要的效果就是在不用先查询的前提下删除掉满足我任意指定的条件的数据,比如在这个例子中不需先查询删除Name=‘sb’的所有数据,用EF能实现吗
...全文
929 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
淡悸优伤 2017-03-21
  • 打赏
  • 举报
回复
扩展是你最好的选择
正怒月神 2017-03-21
  • 打赏
  • 举报
回复
1 ef支持直接sql语句 2 楼上说的Delete(s => s.Name == "") 是ef扩展 nuget搜索 EntityFramework.Extended
faib920 2017-03-21
  • 打赏
  • 举报
回复
似乎没有提供类似 Delete(s => s.Name == "") 这样的方法
  • 打赏
  • 举报
回复
那只有1L哪种对EF的扩展dll了
Brown_Sugar 2017-03-17
  • 打赏
  • 举报
回复
引用 2 楼 starfd 的回复:
EF支持直接执行sql……
我知道可以直接执行sql 只是我想用linq或者EF里面现成封装好的方法实现这个效果,能做到吗
  • 打赏
  • 举报
回复
EF支持直接执行sql……
D56233577 2017-03-16
  • 打赏
  • 举报
回复
试试 EntityFramework.Extensions,用了几年EF,我已经决定不用了。

17,748

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧