我創建了以下兩類:表自動創建記錄時,另一個表得到一個新的記錄
public class QuoteGeneral
{
public int QuoteGeneralID { get; set; }
public QuoteStatus Status { get; set; }
//Code and annotation removed for clarity
public int? QuoteCustomerID { get; set; }
public virtual QuoteCustomer QuoteCustomer { get; set; }
public virtual QuoteProduction QuoteProduction { get; set; }
}
public class QuoteProduction
{
public int QuoteGeneralID { get; set; }
public int testrun { get; set; }
public virtual QuoteGeneral QuoteGeneral { get; set; }
}
然後我說:
modelBuilder.Entity<QuoteProduction>()
.HasKey(e => e.QuoteGeneralID);
modelBuilder.Entity<QuoteGeneral>()
.HasOptional(s => s.QuoteProduction)
.WithRequired(ad => ad.QuoteGeneral);
要設置QuoteProduction.QuoteGeneralID
領域既主鍵和外鍵。所以,現在當生成的數據庫就會看起來像:
我想記錄在QuoteProduction
表自動創建每當一個進入QuoteGeneral
表。這可能嗎?或者,我必須自己添加嗎?如果我必須自己添加它,捕獲QuoteGeneralID
值的最佳方法是什麼?我不認爲SELECT MAX(QuoteGeneralID) FROM QuoteGeneral
將永遠是可靠的,因爲我可能有很多用戶使用數據庫,並且可能會導致錯誤的值。
編輯:什麼工作對我來說(僅供參考,以可能幫助其他將來)
public ActionResult Create([Bind(Include = "list of bind fields")] QuoteGeneral quoteGeneral)
{
if (ModelState.IsValid)
{
db.QuoteGenerals.Add(quoteGeneral);
var qp = new QuoteProduction
{
QuoteGeneralID = quoteGeneral.QuoteGeneralID
};
db.QuoteProductions.Add(qp);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(quoteGeneral);
}
在你的QuoteGeneral表上使用INSERT觸發器 – 2016-08-15 11:57:14
插入觸發器後使用 – TheGameiswar