[英]Update/Edit an Entry in C# CRUD Operations
我正在尝试在“ Roles
表中编辑一个RoleName
。 一切正常,除了我遇到错误,即Entry
和SaveChanges
方法没有定义。 我对System.Data.Entity
和EntityFramework
都using
语句,所以我不确定问题出在哪里。 我很确定我拥有所有正确的软件包和参考。
//Get Edit
[HttpGet]
public ActionResult Edit(Roles model)
{
return View();
}
//Put Edit
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(Comtrex_ICU.Models.Roles model, int RoleId,
Roles RoleName)
{
try
{
Roles db = new Roles();
db.Entry(RoleName).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("RolesIndex");
}
catch
{
return View();
}
}
由于您似乎没有从存储库中调用它们,因此Entry
和SaveChanges
是属于EntityFramework实体的方法。
您正在尝试从Roles
实例调用它们。
您需要将实例实例化为db
。
代替以下内容:
Roles db = new Roles();
您应该执行此操作(其中Entities是为实体指定的名称):
Entities db = new Entities();
现在,您可以使用Find
要编辑的角色:
var editRole = db.Roles.Find(RoleId);
然后,您需要映射已编辑的属性,然后进行更新。
您应该在Controller或服务存储库的构造函数中实例化实体,而不是在每次需要时实例化实例,但是以上示例应为您指明正确的方向。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.