【发布时间】:2018-04-04 13:00:01
【问题描述】:
我想使用实体框架更新现有条目,这是我当前的代码:
[HttpPost]
public IActionResult Edit(Product product)
{
if (ModelState.IsValid)
{
var result = _productRepository.Query().FirstOrDefault(x => x.Id == product.Id);
if (result == null)
return RedirectToAction("Index", "Products");
_productRepository.Update(product);
//result = product;
_productRepository.Save();
return View("Edit", result);
}
我尝试了什么:
result = product; 似乎没有更新 db 中的行。
public void Update(T item)
{
_context.Entry(item).CurrentValues.SetValues(item);
}
似乎没有更新 db 中的行。
result.Title = product.Title - 有效,但是我必须为每个字段都这样做,有没有办法通过用另一个对象替换值来更新一行?
【问题讨论】:
-
_context.Entry(item).CurrentValues.SetValues(item);没有任何意义。 -
@Isma 除了可能不好的英文措辞之外,上面的代码什么都不做是不是很明显?从
item属性设置item属性。
标签: c# asp.net sql-server entity-framework