【发布时间】:2012-01-13 19:14:49
【问题描述】:
这是我想做的一个非常基本的例子。我想出的代码似乎很冗长......即循环通过集合等。
我正在使用 Telerik MVC 网格,它回发一组已删除、插入和更新的 ViewModel。视图模型与实体相似但不完全相同。
例如...我有:
Order.Lines。 Lines 是包含 OrderDetail 记录的实体集合(导航属性)。在使用我的控制器的更新操作中,我有一个从 POST 数据中提取的列表名称 DeletedLines。我还查询了数据库并拥有包含 Lines 集合的 Order 实体。
现在我基本上想告诉它删除 Lines EntityCollection 中的所有 OrderDetails。
我的做法是这样的:
foreach (var line in DeletedLines) {
db.DeleteObject(Order.Lines.Where(l => l.Key == line.Key).SingleOrDefault())
}
我希望有一种方法可以使用 .Interset() 获取要删除的实体集合并将其传递给 DeleteObject。但是,DeleteObject 似乎只接受单个实体而不是集合。
也许以上已经足够好了..但似乎应该有一个更简单的方法。
谢谢, 鲍勃
【问题讨论】:
-
FWIW,你可以添加一个简单的扩展方法来一次删除多个,但它只会做一个 foreach :)
标签: linq asp.net-mvc-3 entity-framework-4 linq-to-objects entitycollection