如何解决在单个ActionResult中删除多个数据库行? ASP.NET
我希望能够使用一个ActionResult删除多个数据库行。但是,由于ActionResult的性质,无论如何都将首先执行到达的代码,并且将引发错误。有什么办法解决这个问题吗? -我要使用一个ActionResult的原因是因为我将id值作为其参数之一传递。此id值使用onclick事件从视图发送到ActionResult(因此,我无法使用单个onclick指定多个ActionResult)。
下面是按钮(单击该按钮后,会将ID值发送给ActionResult“ DeleteUser”):
@foreach (var User in Model)
{
<tr>
<td>@User.UserID</td>
<td>@User.Username</td>
<td>@User.Email</td>
<td>@User.Password</td>
<td>@User.UserType</td>
<td><i class="fas fa-pen-square fa-lg"></i></td>
<td><i class="fas fa-minus-square fa-lg" onclick="location.href = '@Url.Action("DeleteUser","Admin",new { id = User.UserID })'"></i></td>
</tr>
}
可以在下面看到ActionResult“ DeleteUser”(向其发送ID值):
public ActionResult DeleteUser(int id)
{
//DONATOR DELETE --------
int currentUserDonator = db.tblDonator.Where(aa => aa.user_id == id).Select(a => a.donator_id).FirstOrDefault();
//Remove specific donator users payment details from donator payment details table in database
var userDonatorPayment = db.tblDonator_Payment_Details.Where(bb => bb.donator_id == currentUserDonator).First();
db.tblDonator_Payment_Details.Remove(userDonatorPayment);
//Remove specific user from the user table in database (DRY - May be re-used)
var User = db.tblUser.Where(ii => ii.user_id == id).First();
db.tblUser.Remove(User);
//Remove specific donator user from the donator table in database
var UserDonator = db.tblDonator.Where(aa => aa.user_id == id).First();
db.tblDonator.Remove(UserDonator);
db.SaveChanges();
//NPO DELETE --------
int currentUserNPO = db.tblNpo.Where(dd => dd.user_id == id).Select(d => d.npo_id).FirstOrDefault();
//Remove specific npo users banking details from npo bank table in database
var userNPOBanking = db.tblNpo_Bank.Where(qq => qq.npo_id == currentUserNPO).First();
db.tblNpo_Bank.Remove(userNPOBanking);
//Remove specific npo user from the npo table in database
var UserNPO = db.tblNpo.Where(mm => mm.user_id == id).First();
db.tblNpo.Remove(UserNPO);
db.SaveChanges();
return RedirectToAction("User_table");
}
从上面可以看到,ActionResult有两个“部分”-一个用于删除Donator用户,另一个用于删除NPO用户。但是,在我要删除NPO用户的情况下,捐赠者“部分”中的代码将执行,并且到达第二行时将引发错误:
var userDonatorPayment = db.tblDonator_Payment_Details.Where(bb => bb.donator_id == currentUserDonator).First();
错误状态为“ system.invalidOperationException:'序列不包含任何元素'”。只是;我问是否有解决此问题的方法?谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。