级联删除

时间:2015-12-04 10:39:18

标签: asp.net asp.net-mvc

我是asp.net和mvc的新手。 我有一个类AsyApp

 public class AsyApp
{
    [Key]
    public int AsyAppId { get; set; }

    [DisplayName("Nom")]
    public string Name { get; set; }

    public virtual ICollection<Scene> Scenes { get; set; }
}

它有一系列场景

 public class Scene
{

    [Key]
    [Required]
    public int SceneId { get; set; }


    [ForeignKey("AsyApp")]
    public int AsyAppId { get; set; }
    [Required]
    public virtual AsyApp AsyApp { get; set; }


    [ForeignKey("Name")]
    public int NameId { get; set; }

    [DisplayName("Nom")]
    public virtual Translation Name { get; set; }

    public int Order { get; set; }
}

并且Scene具有翻译类

中的属性Name
public class Translation
{
    [Key]
    [Required]
    public int TranslationId { get; set; }

    public string Fr { get; set; }
    public string En { get; set; }

}

这是我的问题。 我将使用类Translation来处理应用程序中每个字符串的语言。我可以参加任何其他课程

我希望在删除应用程序时删除相应的场景和本地化

以下是我删除应用的代码

[HttpPost, ActionName("Delete")]
    [ValidateAntiForgeryToken]
    public ActionResult DeleteConfirmed(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }

        AsyApp asyApp = db.AsyApps.Find(id);
        if (asyApp == null)
        {
            return HttpNotFound();
        }

        db.AsyApps.Remove(asyApp);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

要自动删除的场景接缝,而不是与它们相关的本地化...

希望你能帮助我

非常感谢

1 个答案:

答案 0 :(得分:0)

看看这个链接: https://msdn.microsoft.com/en-us/data/jj591620.aspx#CascadeDelete

您可以使用Fluent API启用级联删除。