我试图在WebAPI PUT控制器中用EF更新记录。我正在使用以下代码EF中的更新记录无法按预期方式工作
Product dbProduct = db.Products.FirstOrDefault(s => s.InternalReferenceId == InternalReferenceId && s.SupplierId == SupplierId);
if (dbProduct != null)
{
db.Products.Attach(dbProduct);
var entry = db.Entry(dbProduct);
entry.Property(e => e.Description).IsModified = true;
await db.SaveChangesAsync();
}
else
{
return NotFound();
}
return Ok();
找到该产品,因为它返回200 Ok。但没有更新。我目前只是试图更新说明。
我打电话给api.com/api/products/update?InternalReferenceId=1&SupplierId=1
,如上所述,它找到了一条记录。在PUT请求中,我有以下内容
{
"description": "testing 123"
}
为什么不更新?
您正在获取'entity'并将其作为附件添加,因为它没有指定新的“Description”值。 –
那会怎样?这条线的工作原理是'dbProducts.Description = product.Description;',但是附加点是什么,获取条目和设置是否被修改? – brother
你应该用'ID'和'updated values'发送一个新的'entity class'对象,然后把这个对象附加到'dbContext'上。 –