在ADO.NET中我可以使用delete
语句
从SQL表中删除一些行。
实体框架中的等价物是什么?
我怎样才能达到同样的效果?
使用null对象进行更新是不一样的。
答案 0 :(得分: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();
更多:DataContext
答案 1 :(得分:1)
回复告诉你,你需要首先获取对象(严格来说,键是足够的,但你需要手动完成一些工作)到内存中并标记它们以便删除,最后调用SaveChanges
。虽然这是“正常”的方法,但有许多扩展,帮助,......允许你做批量删除,批量更新和其他有用的东西。
您可以查看EntityFramework.Extended(也在GitHub)或Entity Framework Extensions(来源)。
答案 2 :(得分: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();