如何删除使用LINQ到实体*我的表中的一个或多个行,而不*先检索行?(How do I delete

2019-08-31 05:57发布

我明白,我可以删除存储的过程映射到删除方法为特定类型。

然而,这需要在检索的对象传递给我的上下文的DeleteObject方法。

这是够糟糕的了,但如果我要删除2000行呢? 我可以使用LINQ这样对实体没有首先从数据库中检索的2000列,并通过循环调用去DeleteObject

如果这种功能不Linq中存在的实体,你知道这是,那么请你只说这样的情况下,我会调查其他的选择!

如果它不直接存在的,我能做到的,是通过管道Linq的一个存储过程,以实体?

Answer 1:

是的,你可以做到这一点。 从这个提示 :

// Create an entity to represent the Entity you wish to delete
// Notice you don't need to know all the properties, in this
// case just the ID will do.
Category stub = new Category { ID = 4 };
// Now attach the category stub object to the "Categories" set.
// This puts the Entity into the context in the unchanged state,
// This is same state it would have had if you made the query
ctx.AttachTo("Categories", stub);
// Do the delete the category
ctx.DeleteObject(stub);
// Apply the delete to the database
ctx.SaveChanges();

见完整尖端的细节和并发症。



文章来源: How do I delete one or more rows from my table using Linq to Entities *without* retrieving the rows first?