与此表有关系
我如何删除“ForumTest”类别以及第二个表中与之相关的所有线程?
编辑:这是我目前的代码,仅适用于没有关系的类别
[HttpPost]
public ActionResult DeleteCategory(int? id)
{
Category category = db.Categories.Find(id);
db.Threads.RemoveRange(category.Threads);
db.Categories.Remove(category);
db.SaveChanges();
return RedirectToAction("Categories");
}
答案 0 :(得分:1)
您需要使用cascading delete配置您的关系。覆盖上下文中的OnModelCreating
方法并添加:
modelBuilder
.Entity<Thread>()
.HasRequired(s => s.Category)
.WithMany(r => r.Threads)
.HasForeignKey(s=>s.CategoryId)
.WillCascadeOnDelete(true);
答案 1 :(得分:0)
Category category = db.Categories.Find(id);
db.Threads.RemoveRange(category.Threads);
db.Categories.Remove(category);
db.SaveChanges();
此后删除所有相关的表数据,如。
var categoryDetail = relatedtable.Find(id);
db.relatedtable.RemoveAll(categoryDetail);
db.SaveChanges();