[英]updating|deleting record in asp.net mvc 4
早上好|晚上
我有此代碼用於更新控制器中的記錄
[HttpPost]
public JsonResult Userupdate(UserProfile user)
{
try
{
if (!ModelState.IsValid)
{
return Json(new
{
Result = "ERROR",
Message = "Form is not valid! " +
"Please correct it and try again."
});
}
var usersC = from x in _db.UserProfiles where x.UserId == user.UserId select x;
//int studentCount = usersC.Count();
//List<UserProfile> students = usersC.ToList();
UserProfile vb = new UserProfile();
vb.UserId = user.UserId;
vb.UserName = user.UserName;
vb.IdentificationNumber = user.IdentificationNumber;
vb.department = user.department;
//_db.UserProfiles.Add(vb);
_db.SaveChanges();
return Json(new { Result = "OK"});
}
catch (Exception ex)
{
return Json(new { Result = "ERROR", Message = ex.Message });
}
}
我有此代碼用於刪除控制器中的記錄
[HttpPost]
public JsonResult userdelete(int userId)
{
try
{
//_personRepository.DeletePerson(personId);
return Json(new { Result = "OK" });
}
catch (Exception ex)
{
return Json(new { Result = "ERROR", Message = ex.Message });
}
}
您會在注釋中看到“存儲庫”,因為我沒有在項目中使用它。 我使用鏈接方法。
我寫以下代碼與數據庫連接
UsersContext _db = new UsersContext();
但是我沒有從數據庫中刪除它的正確方法。
注意:::我正在使用jTable顯示數據。
你能幫助我嗎 :_)
這是使用實體框架嗎? 不幸的是,這在EF中無法像編寫服務或MVC api時希望的那樣工作。 也就是說,僅傳遞ID。
EF僅在實體在上下文中加載后才能刪除它。 這意味着要么獲取該實體然后刪除它,要么創建一個“殼”實體,將其附加,然后進行刪除。 (Remove方法的另一種方法是將其附加,然后將其狀態設置為Delete,然后執行SaveChanges。這實際上是相同的)
var userEntity = new UserProfile {UserId = userId};
_db.Users.Attach(userEntity);
_db.Users.Remove(userEntity);
_db.SaveChanges();
迅速解決您的問題真是太好了:)
是的,我在“ Jim Leonardo”的幫助下解決了我的問題。
非常感謝吉姆·萊昂納多先生。
以下代碼用於更新記錄,並且工作正常。
[HttpPost]
public JsonResult Userupdate(UserProfile user)
{
try
{
if (!ModelState.IsValid)
{
return Json(new
{
Result = "ERROR",
Message = "Form is not valid! " +
"Please correct it and try again."
});
}
var usersC = from x in _db.UserProfiles where x.UserId == user.UserId select x;
var UserToUpdate = usersC.First();
UserToUpdate.UserId = user.UserId;
UserToUpdate.UserName = user.UserName;
UserToUpdate.IdentificationNumber = user.IdentificationNumber;
UserToUpdate.department = user.department;
_db.SaveChanges();
return Json(new { Result = "OK"});
}
catch (Exception ex)
{
return Json(new { Result = "ERROR", Message = ex.Message });
}
}
以下代碼用於刪除記錄; 它工作正常。
[HttpPost]
public JsonResult userdelete(UserProfile user, int userId)
{
try
{
var usersC = from x in _db.UserProfiles where x.UserId == user.UserId select x;
var UserToUpdate = usersC.First();
UserToUpdate.UserId = user.UserId;
UserToUpdate.UserName = user.UserName;
UserToUpdate.IdentificationNumber = user.IdentificationNumber;
UserToUpdate.department = user.department;
_db.UserProfiles.Remove(UserToUpdate);
_db.SaveChanges();
return Json(new { Result = "OK" });
}
catch (Exception ex)
{
return Json(new { Result = "ERROR", Message = ex.Message });
}
}
再次謝謝吉姆·萊昂納多先生
問題解決了 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.