// Inside an action result
tp = dbContext.tp.Single(x => ...);
foreach (Sample sample in tp.samples)
{
if (sample.SampleStatusId == 1)
changeSamplestatus(sample, 2, now); //change samples to on hold
}
dbContext.SaveChanges();
public void changeSamplestatus(Sample sample, int sampleStatus, DateTime now)
{
sample.SampleHistory.Add(new SampleHistory
{
OldStatus = sample.SampleStatusId,
NewStatus = sampleStatus,
});
sample.SampleStatusId = sampleStatus;
}
我有一個實體(樣本),我想改變它的狀態。EF修改函數中的實體
我正在調用一個函數來做這件事,但實體沒有被修改(但它正在用正確的FK在歷史表中創建一個新行)。
調用SaveChanges
時不會引發任何錯誤。它只是不修改實體。
哪個EF版本是這樣的? –
你寫的代碼會插入samplehistory記錄。如果您想更新歷史記錄表格,那麼您應該閱讀該歷史記錄,然後進行更新。然後,您可以將EntityState屬性更改爲進行更新 –