【问题标题】:DELETE statement conflicted (ASP.NET MVC)DELETE 语句冲突 (ASP.NET MVC)
【发布时间】:2017-03-16 20:02:27
【问题描述】:

我有 ASP.NET MVC 应用程序

我有两个相对的表 Companies 和 Vacancy。

当我删除公司时,我想删除与其相关的职位空缺。

这是我的控制器

  public ActionResult Delete(int? id)
    {
        if (id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        Company companies = db.Companies.Find(id);
        if (companies == null)
        {
            return HttpNotFound();
        }
        return View(companies);
    }

    // POST: Companies/Delete/5
    [HttpPost, ActionName("Delete")]
    [ValidateAntiForgeryToken]
    public ActionResult DeleteConfirmed(int id)
    {
        Company companies = db.Companies.Find(id);
        db.Companies.Remove(companies);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

这是公司表

CREATE TABLE [dbo].[Companies] (
[CompanyID]   INT            IDENTITY (1, 1) NOT NULL,
[CompanyName] NVARCHAR (MAX) NULL,
PRIMARY KEY CLUSTERED ([CompanyID] ASC)

);

一个职位空缺

CREATE TABLE [dbo].[Vacancies] (
[VacancyId]   INT        IDENTITY (1, 1) NOT NULL,
[VacancyName] NCHAR (10) NULL,
[CompanyID]   INT        NULL,
PRIMARY KEY CLUSTERED ([VacancyId] ASC),
CONSTRAINT [FK_Vacancies_ToTable] FOREIGN KEY ([CompanyID]) REFERENCES [dbo].[Companies] ([CompanyID])

);

我需要如何修改语法以轻松删除公司?

【问题讨论】:

  • 添加级联删除到依赖表
  • ON DELETE CASCADE 只是它? @johnny5
  • 或者只是手动标记与空缺相关的那些
  • 只需添加ON DELETE CASCADE 做工作,谢谢@johnny5
  • @johnny5 你会发布你的解决方案作为答案吗,即使它很小,它也很有用(我会说非常有用)

标签: c# asp.net asp.net-mvc entity-framework asp.net-mvc-4


【解决方案1】:

修改你的依赖添加ON DELETE CASCADE

CREATE TABLE [dbo].[Vacancies] (
    [VacancyId]   INT        IDENTITY (1, 1) NOT NULL,
    [VacancyName] NCHAR (10) NULL,
    [CompanyID]   INT        NULL,
    PRIMARY KEY CLUSTERED ([VacancyId] ASC),
    CONSTRAINT [FK_Vacancies_ToTable] 
    FOREIGN KEY ([CompanyID]) 
    REFERENCES [dbo].[Companies] ([CompanyID])
    ON DELETE CASCADE);

这将允许在您删除您的公司时删除您的参考资料。 或者,您可以将每个实体标记为从 C# 中删除,这将为您提供更多控制并避免意外删除

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-11
    • 2021-02-10
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多