当前位置:编程学习 > C#/ASP.NET >>

请问MVC3 LINQ TO EF 一次性删除表里多行记录怎么做呀?

有一个表 students  年龄age小于20的共有10行记录,
怎么一次性把这10行记录删除掉?

看到EF中有个DeleteObject方法但是只能一行一行删,效率太差了
如 db.students.DeleteObject(u);

如果用循环遍历删除的话,出现的sql类似这样?
delete from students where id=n1
delete from students where id=n2
delete from students where id=n3
...
我只想实现一条SQL删除,但是用ef不知道怎么写这个语句
delete from students where age<20

请帮忙看看,谢谢! --------------------编程问答--------------------
引用 楼主 yctcsms 的回复:
有一个表 students  年龄age小于20的共有10行记录,
怎么一次性把这10行记录删除掉?

看到EF中有个DeleteObject方法但是只能一行一行删,效率太差了
如 db.students.DeleteObject(u);

如果用循环遍历删除的话,出现的sql类似这样?
delete from students where id=n1
delete from students where id=n2
delete from students where id=n3
...
我只想实现一条SQL删除,但是用ef不知道怎么写这个语句
delete from students where age<20

请帮忙看看,谢谢!



        实体类 modelname = 数据源db.OrderDetails.First(d => d.age < 20);
        数据源DB.OrderDetails.Remove(modelname);
        db.SubmitChanges();


最重要是SubmitChanges(),OrderDetails.Remove 

可以批量删除! --------------------编程问答-------------------- vs2010里怎么看我安装的EntityFramework版本,可能我的安装的版本还是低版的,没有remove submitchanges。 请问怎么查看EntityFramework版本的? --------------------编程问答--------------------
引用 2 楼 yctcsms 的回复:
vs2010里怎么看我安装的EntityFramework版本,可能我的安装的版本还是低版的,没有remove submitchanges。 请问怎么查看EntityFramework版本的?

看你项目里引用的EntityFramework.dll的版本

你可以直接SQL语句来进行批量删除

using (var context = new DatabaseEntities())
{
    context.ExecuteStoreCommand("DELETE FROM students WHERE id < {0}", 20);
}
--------------------编程问答-------------------- context.DeleteObjects(context.Table.Where(x => x.id < n)) --------------------编程问答-------------------- http://social.msdn.microsoft.com/Search/zh-CN?query=mvc&ac=4

官网教程 0基础学习 --------------------编程问答-------------------- 大致就都是这么个意思:

 var 数据= db.表.Where(t => t.NetWorkID == NetworkID);
                    db.表.DeleteAllOnSubmit(数据);
                    db.SubmitChanges(); --------------------编程问答-------------------- 我看到版本显示的是 4.0.0.0,这个是什么版本?
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,