3

私のコードのコンテキストスニペットからこれを考えると:

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();

Entity Framework を使用して、完了後に調整オブジェクト用に選択 (シード) された主キーを取得する方法はありますdb.SaveChanges();か?

つまり、コミット後にこのオブジェクトの主キーを取得するにはどうすればよいでしょうか?

4

2 に答える 2

5

コンテキストでエントリをリロードします。

db.Entry(calibration).Reload();

次に、新しく作成された PK にアクセスできます。

于 2013-04-05T18:55:44.820 に答える
2

また、Calibration.PrimaryKeyPropertydb.SaveChanges(); の後から取得できます。

意味、

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;
于 2013-04-05T19:00:57.807 に答える