1.3、EF的增删改查

【阅读笔记】

EF里一共有5种状态(EntityState):

游离Detached=1,

未变化Unchanged=2,

新增Added=4,

已删除Deleted=8,

已修改Modified=16

添加:前台暂不处理,通常按生成视图就可以

[HttpPost]
        public ActionResult Create(Testmodel newtest)
        {
            try
            {
                // TODO: Add insert logic here
                if (ModelState.IsValid)
                {
                    EntityState statebefore = db.Entry(newtest).State;  //Detached 实际无效,跟踪效果
                    db.Testmodel.Add(newtest);
                    EntityState stateAdd = db.Entry(newtest).State; //Added
                    db.SaveChanges();
                    EntityState stateafter = db.Entry(newtest).State;//Unchanged
                    return RedirectToAction("Index");
                }
            }
            catch
            {
                ModelState.AddModelError("", "错误提示.");

            
            }
            return View(newtest); 
}

编辑

       public ActionResult Edit(int id)
        {
            TestModel test= db.TestModel.Find(id);
            return View(test);
        }

        [HttpPost]
        public ActionResult Edit(TestModel model)
        {
                // TODO: Add update logic here
                if (ModelState.IsValid)
                {
                    EntityState statebefore = db.Entry(model).State;   
                    db.Entry(model).State = EntityState.Modified;
                    int i= db.SaveChanges();
                    EntityState stateafter= db.Entry(model).State;
                    return RedirectToAction("Index");
                }
            return View(model);
        }

删除

public ActionResult Delete(int id, bool? saveChangesError)
        {
            if (saveChangesError.GetValueOrDefault())
            {
                ViewBag.ErrorMessage = "错误提示.";
            }
            return View(db.Testmodel.Find(id));
        }

        //
        // POST: /Student/Delete/5

        [HttpPost,ActionName("Delete")]
        public ActionResult DeleteConfirmed(int id)
        {
            try
            {
                // TODO: Add delete logic here
                Testmodel model= db.Testmodel.Find(id);
                EntityState statebefore = db.Entry(model).State; //UnChange
                db.Testmodel.Remove(model);
                EntityState stateafter = db.Entry(model).State;//Deleted
                db.SaveChanges();
                EntityState stateaOk = db.Entry(model).State;//Detached
                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

  

没了

 

转载于:https://www.cnblogs.com/singin/archive/2013/05/04/3059469.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值