我試圖在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'上。 –