当基表中的实体不受影响时,我只能从依赖表中删除实体时出现问题。这是我的类和实体层次结构的简单模式:
我的问题是我如何只删除ActivityInvoice
的记录并将记录保留在发票表中。例如,我已经使用InvoiceID = 3和ActivityInvoice
记录的Invoice表记录中包含相同的InvoiceID
和一些其他数据。现在,我想删除ActivityInvoice
中InvoiceID
= 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; }
}
以下代码遗憾地会删除这两个记录ActivityInvoice
和Invoice
。
public ActionResult DeleteConfirmed(int invoiceID)
{
ActivityInvoice activityinvoice = db.ActivityInvoices.Find(invoiceID);
db.ActivityInvoices.Remove(activityinvoice);
db.SaveChanges();
return RedirectToAction("Index");
}