我正在使用Entity Framework从表中删除多个项目.没有外键/父对象,因此我无法使用OnDeleteCascade处理此问题.
现在我这样做:
var widgets = context.Widgets
.Where(w => w.WidgetId == widgetId);
foreach (Widget widget in widgets)
{
context.Widgets.DeleteObject(widget);
}
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
它有效但是foreach让我烦恼.我正在使用EF4,但我不想执行SQL.我只是想确保我没有遗漏任何东西 - 这一切都很好,对吧?我可以用扩展方法或帮助器来抽象它,但在某个地方我们仍然会做一个foreach,对吧?
我有这个方法:
[Route("Delete")]
public IHttpActionResult Delete()
{
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是从这里的三个表中删除:
public System.Data.Entity.DbSet<SampleSentence> SampleSentences { get; set; }
public System.Data.Entity.DbSet<Synonym> Synonyms { get; set; }
public System.Data.Entity.DbSet<WordForm> WordForms { get; set; }
Run Code Online (Sandbox Code Playgroud)
在EF6中是否有删除功能,我可以用来删除所有行,还是应该以某种方式进行SQL调用?