在TPT映射中仅删除实体框架中的从属表记录

时间:2014-04-23 10:27:15

标签: asp.net asp.net-mvc entity-framework

当基表中的实体不受影响时,我只能从依赖表中删除实体时出现问题。这是我的类和实体层次结构的简单模式:

我的问题是我如何只删除ActivityInvoice的记录并将记录保留在发票表中。例如,我已经使用InvoiceID = 3和ActivityInvoice记录的Invoice表记录中包含相同的InvoiceID和一些其他数据。现在,我想删除ActivityInvoiceInvoiceID = 3的记录,并在InvoiceID表中保留Invoice = 3记录。

我的示例类:

public class Invoice
{
    public int InvoiceID { get; set; }

    public string Field{ get; set; }
}

public class ActivityInvoice : Invoice
{
    public int ActivityID { get; set; }

    public decimal AdditionalField1 { get; set; }

    public virtual Activity Activity { get; set; }
}

以下代码遗憾地会删除这两个记录ActivityInvoiceInvoice

public ActionResult DeleteConfirmed(int invoiceID)
{
    ActivityInvoice activityinvoice = db.ActivityInvoices.Find(invoiceID);

    db.ActivityInvoices.Remove(activityinvoice);
    db.SaveChanges();
    return RedirectToAction("Index");
}  

0 个答案:

没有答案