微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Dbcontext 添加条目

如何解决如何使用 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,即设施优先级 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();
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。