// 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属性更改为进行更新 –