2016-12-05 70 views
0

無法將對象ID向前傳遞給另一個對象在我的ActionResult中,我想提交一個Job和一個Image,而Image對象必須有一個JobID,但如果我不' t第一個作業對象的ID不會繼續前進。如果我不使用db.SaveChanges()

var jobs = new Job 
{ 

ID = job.ID, 
. 
. 
//blabla other attributes 
} 

db.Jobs.Add(jobs); 
db.SaveChanges(); 

在這裏,我創建IMG對象

img.JobID = jobs.ID; 

db.Entry(img).State = System.Data.Entity.EntityState.Added; 

db.SaveChanges(); 

在這裏,我要對SaveChanges更多的時間來保存Image,我沒有得到任何ID在JobID,如果我以後不SaveChanges我創建工作對象,我只能如何SaveChanges一次?據我所知,在同一ActionResult中有多個SaveChanges並不是一個好習慣。

+1

當您使用自動生成的ID,數據庫將插入一行到數據庫時生成的ID,所以解決方案是使用手動ID,例如GUID,然後你可以在保存記錄之前使用它。 – SalmanAA

回答

0

嘗試,如果你創建正確的關係,下面得到的概念申請您的問題:

var jobs = new Job 
{ 
    ID = job.ID, 
    . 
    . 
    Image = new Image() { ... } 
    } 

    db.Jobs.Add(jobs); 
    db.SaveChanges(); 
相關問題