2013-04-05 52 views
2

考虑到了这一点,我的代码方面片断:如何获取对象的主键保存后用的DbContext

var calibration = new Calibration 
{ 
    CalibrationType = SelectedTest.TestTypeId 
    ,Expiration = expirationDate 
    ,LastSaved = DateTime.Now 
    ,StatusTypeId = 1 
    ,TechnicianId = SelectedTechnician.Id 
    ,Phases = BuildCalibrationPhases() 
}; 

db.Calibrations.Add(calibration); 
db.SaveChanges(); 

是否与实体框架的方式来获得选择主键(种子)在db.SaveChanges();完成后的校准对象?

换句话说,如何在提交该对象后获得主键?

回答

3

刷新在上下文中的条目:)

db.Entry(calibration).Reload(); 

然后你可以访问新创建的PK

+0

这就是我一直在寻找。如果您认为它的组织性和直接性,请不要忘记+1。 – 2013-04-05 19:09:08

2

此外,您可以db.SaveChanges之后,从Calibration.PrimaryKeyProperty得到(;

手段,

var calibration = new Calibration 
{ 
    CalibrationType = SelectedTest.TestTypeId 
    ,Expiration = expirationDate 
    ,LastSaved = DateTime.Now 
    ,StatusTypeId = 1 
    ,TechnicianId = SelectedTechnician.Id 
    ,Phases = BuildCalibrationPhases() 
}; 

db.Calibrations.Add(calibration); 
db.SaveChanges(); 



int value = Calibration.PrimaryKeyProperty; 
+0

+1也很有用,知道 – 2013-04-05 19:02:45