如何在Entity Framework中删除多行(没有foreach)我正在使用Entity Framework从表中删除多个项目。没有外键/父对象,因此我无法使用OnDeleteCascade处理此问题。现在我这样做:var widgets = context.Widgets
.Where(w => w.WidgetId == widgetId);foreach (Widget widget in widgets){
context.Widgets.DeleteObject(widget);}context.SaveChanges();它有效但是foreach让我烦恼。我正在使用EF4,但我不想执行SQL。我只是想确保我没有遗漏任何东西 - 这一切都很好,对吧?我可以用扩展方法或帮助器来抽象它,但在某个地方我们仍然会做一个foreach,对吧?
3 回答
绝地无双
TA贡献1946条经验 获得超4个赞
如果你不想直接在循环中调用DeleteObject来执行SQL,那么今天你可以做到最好。
但是,您可以使用我在此处描述的方法,通过扩展方法执行SQL并使其完全通用。
虽然答案是3.5。对于4.0,我可能会使用新的ExecuteStoreCommand API,而不是下载到StoreConnection。
添加回答
举报
0/150
提交
取消