2016-08-20 3 views
0

私はこのテーブルとの関係テーブル内の行とそのEntity Frameworkとのすべての外部キーの関係を削除するにはどうすればよいですか?

enter image description here

どのように私は、例えば、「ForumTest」カテゴリとに関連するすべてのスレッドを削除することができますを持っている「カテゴリー」
enter image description here

と呼ばれるテーブルを持っていますそれは2番目のテーブルに?

EDIT:これはあなたがcascading deleteとの関係を設定への必要な関係

[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

は、この最初のコードまたは何ですか?コードを共有することはできますか? – Sampath

+0

これは役に立ちます:http://stackoverflow.com/questions/3656099/how-to-delete-rows-in-tables-that-c​​ontain-foreign-keys-to-other-tables – dhS

+0

これを一度行いたいですか?またはCatagoriesから行を削除するたびに? – Whencesoever

答えて

1

なしカテゴリで動作します私の現在のコードです。あなたのコンテキストでOnModelCreatingメソッドをオーバーライドして、これを追加します。この後

modelBuilder 
    .Entity<Thread>() 
    .HasRequired(s => s.Category) 
    .WithMany(r => r.Threads) 
    .HasForeignKey(s=>s.CategoryId) 
    .WillCascadeOnDelete(true); 
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(); 
関連する問題