ef中的三种删除方式

1.第一种现查询对象是否存在:var obj=firstorDefault()=>如果对象存在context.users.Remove(obj);

  根据sql发现;执行两次;第一次SELLECT TOP 1 * FROM USERS ; 第二次delete  xx where;

 

第二种:自己创建id相同的实体;然后附加;attach,之后,状态为:uncahges,然后再进行remove操作;

   User u=new  User(){Id=3}//id对应数据库中的id

   context.Users.Attach(u);

   context.Users.Remove(u);;

  最后在saveChange()进行操作;

 执行一sql语句;delete * from User where Id=xx

 

三种:主动,状态标记;

  User u=new User(){id=3} //id对应数据库中的id;

  DbEntityEntry<User> entity=Context.Entry(u);

 entity.State=EntityState.Deleted  //采用状态标记的方式

最后SaveChange();

 

参考文献:http://blog.csdn.net/itmaxin/article/details/47659817

 

那么如果是批量删除呢; 还多借用插件;

 

当然,还是有就是直接写我们的sql拉滴呀;

delete from table where id condition

//跟新的话;

单独字段的更新

整个行的更新;

这个得看我们的实际情况;

ef的各种批量操作滴呀;

效果整体来说还不错滴呀;

 

posted @ 2017-12-09 16:17  咕-咚  阅读(1318)  评论(0编辑  收藏  举报