如何使用Dbcontext添加条目



我在pgAdmin4中有一个表,我试图只将数据添加到hours和total_amount列,而不更改任何其他数据。其他数据被添加到另一个页面上,然后用户被重定向到一个新页面,在那里他们会被提示输入小时数并单击提交。单击提交后,我希望将用户输入加载到小时列中。如何使用dbcontext来完成此操作?这是我尝试过的代码:


public async Task<IActionResult> Update(int hours, int amount){
FacilityPriority facilityPriority = new FacilityPriority()
{
NumberHours = hours,
TotalAmount = amount

}
await DbContext.FacilityPriority.AddAsync(facilityPriority);

await DbContext.SaveChangesAsync();`

然而,这一直是错误的,我也尝试过DbContext.Update,但这也不起作用。

问题是想要更新现有实体,但您没有更新实体,而是添加了一个新实体,这可能是不完整的。执行更新时,您希望提供足够的信息,以便DbContext可以找到要更新的实体,然后调整预期值。

当您添加新的FacilityPriority时,在调用SaveChanges之后,您应该能够访问该新记录的PK,即Facility优先级ID。重要的是,通过该视图的视图模型将此ID发送到任何视图,以便在发布更新时,您可以提供检索记录并更新其值的PK:

public async Task<IActionResult> Update(int facilityPriorityId, int hours, int amount)
{
var facilityPriorty = DbContext.FacilityPriority.Single(x => x.FacilityPriorityId == facilityPriorityId);
facilityPriority.NumberHours = hours;
facilityPriority.TotalAmount = amount;
await DbContext.SaveChangesAsync();
}

最新更新