我在申请中使用EF。
我想添加和保存实体。
我在应用程序中创建了一个新的实体对象,并设法将其添加到数据库中。
现在我想更新现有实体。
我从数据库中获取了一个现有实体,
在UI中展示
现在我想反映用户的变化。
我是否必须从数据库中再次获取实体并逐个为其属性分配值?
我尝试创建一个新实体并将其保存到数据库中。它没有显示任何错误,但它没有反映在数据库中。
答案 0 :(得分:0)
假设您有一个发布模型对象model
的表单和一个具有工作数据库上下文_context
的控制器,您可以使用以下代码更改现有实体(属性可能会有所不同):
[HttpPost]
public ActionResult SubmitForm(MyViewModel model)
{
// Retrieve existing object
var someObject = _context.Resources.OfType<MyEntityType>.Where
(o => o.Id == model.Id).SingleOrDefault;
// Assign new values to entity
someObject.SomeProperty = model.SomeProperty;
someObject.SomeOtherProperty = model.SomeOtherProperty;
// Commit
_context.SaveChanges();
}
更新:或者,请参阅this answer以获取有关如何附加新对象以代替现有对象的详细信息。