3

在 ADO.NET 中我可以使用delete语句

从 SQL 表中删除一些行。

实体框架中的等价物是什么?

我怎样才能达到同样的结果?

使用空对象进行更新是不一样的。

4

3 回答 3

3

回复告诉你,你需要先将对象(严格来说键就足够了,但是你需要手动做一些工作)到内存中并将它们标记为删除,最后调用SaveChanges. 虽然这是“正常”的方法,但有很多扩展、帮助程序……允许您执行批量删除、批量更新和其他有用的操作。

您可以检查EntityFramework.Extended(也在GitHub 上)或Entity Framework Extensions(也有来源)。

于 2013-03-03T15:01:58.577 回答
1

您需要先检索要删除的对象。例如 :

 // Assuming ID is primary key in `Customer` entity
 Customer cust = (from c in context.Customers where c.ID = "1" select c);

然后使用删除对象DataContext.entity.DeleteObject

 context.Customers.DeleteObject(cust);
 context.SaveChanges();

更多:数据上下文

于 2013-03-03T11:56:45.480 回答
0

首先你需要从你的数据库实体创建实例,然后你应该选择你想要的对象,然后删除它:

TestEntities db = new TestEntities();
Test ts = (from rows in db.Tests
           where rows.ID == 1
           select rows).FirstOrDefault();
if (ts != null)
{
     db.Tests.DeleteObject(ts);
     db.SaveChanges();
}

更新 :

如果您的结果集是一个列表,我的意思是您可以使用多个记录:

List<Test> lst = (from rows in db.Tests select rows).ToList();
foreach (Test item in lst)
{ 
     db.Tests.DeleteObject(item);
}
db.SaveChanges();
于 2013-03-03T11:57:11.270 回答