第一种是查找删除,就是通过一些条件把记录实体查找出来,然后通过上下文直接删除。
我们添加一个admin的区域,添加一个account控制器用来后台管理会员。列出来所有的会员,然后添加一个删除的按钮。
后台会员管理action和视图:
csharpcsharppublic class AccountController : Controller
{
CfContext context = new CfContext();
// GET: Admin/Account
public ActionResult Manage()
{
var list1 = context.account.Where(m => m.ID < 100).ToList();
return View(list1);
}
}
下面是视图:
csharpcsharp@model List<WebApplicationCF01.Models.Account>
@{
ViewBag.Title = "Manage";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>会员管理</h2>
<p>所有会员</p>
@foreach (var item in Model)
{
@item.Name <a href="delete/@item.ID">[删除]</a><br />
}
管理控制器哪里加入这个Delete的action:
csharpcsharppublic ActionResult Delete(int Id)
{
//使用这个查找删除方式
var model = context.account.Where(m => m.ID == Id).SingleOrDefault();
if (model != null)
{
//将当前查找出来的实体的状态设为Deleted
context.Entry<Account>(model).State = System.Data.Entity.EntityState.Deleted;
context.SaveChanges();
}
return RedirectToAction("Manage");
}
直接不查找,直接附加的这种方式:
csharpcsharp//使用附加的方式删除
var model = new Account { ID = Id };
context.Set<Account>().Attach(model);
context.Entry<Account>(model).State = System.Data.Entity.EntityState.Deleted;
context.SaveChanges();
return RedirectToAction("Manage");
这种方式也是可以的,并且new的时候只是单单new ID主键就可以了。