MVC3和MVC4中CRUD操作

MVC3和MVC4中CRUD操作

大家好,又见面了,我是全栈君。

MVC3中EF实现的CRUD操作

 public class HomeController : Controller
    {
        //
        // GET: /Home/
        CarModelContainer db = new CarModelContainer();
       
        #region 查询全部 +Index()
        public ActionResult Index()
        {

            List<CarModel> list = (from c in db.CarModel select c).ToList();
            //ViewData["DataList"] = list;  上下两种效果一样  都是为了传递数据到前台
            return View(list);   //这样传输的是强类型的数据 在前台通过Model获取
        } 
        #endregion

        #region 加入信息 +Create()
       
        [HttpGet]
        public ActionResult Create()
        {
            return View();
        }
        [HttpPost]
        public ActionResult Create(CarModel car)
        {
            if (ModelState.IsValid)   //后台的验证信息
            {
                db.CarModel.AddObject(car);
                db.SaveChanges();
                return RedirectToAction("Index");

            }
            else
            {
                return View(car);
            }

        } 
        #endregion

        #region 编辑信息 +Edit()
        [HttpGet]
        public ActionResult Edit(int id)
        {
            CarModel car=(from a in db.CarModel 
                          where a.ID==id 
                          select a).FirstOrDefault();

            if (car==null)
            {
                return RedirectToAction("Index");
                
            }
            return View(car);
        }
        [HttpPost]
        public ActionResult Edit(CarModel car)
        {
            try
            {   
                //第一种方式  使用LinQ查询出要编辑的对象
                //CarModel model=(from a in db.CarModel 
                //          where a.ID==car.ID 
                //          select a).FirstOrDefault();
                
                //另外一种方式  创建一个所以要加入的对象 car中的实体属性 系统会自己主动检索得到相应的值
                CarModel model = new CarModel() { ID=car.ID};
                db.CarModel.Attach(model);

                UpdateModel(model);
                db.SaveChanges();
                return RedirectToAction("index");
            }
            catch (Exception )
            {
                ModelState.AddModelError("","改动失败。请查看具体错误信息");  
              
            }
            return View(car);
 
        }


        #endregion

        #region 删除信息 +Delete()
        public ActionResult Delete(int id)
        {
            CarModel car = (from a in db.CarModel
                            where a.ID == id
                            select a).FirstOrDefault();
            db.CarModel.DeleteObject(car);
            db.SaveChanges();
            return RedirectToAction("index");
        }
        #endregion


    }

MVC 4中EF实现的CRUD操作

 //加入实体
        public bool AddEntity(Model.Customer entity)
        {
            Hotel.Model.HotelModelContainer db = new Model.HotelModelContainer();
            db.Customer.Add(entity);
            int count = db.SaveChanges();
            if (count > 0)
            {
                return true;
            }
            return false;

        }
        //删除实体
        public bool DeleteEntity(Model.Customer entity)
        {
            Hotel.Model.HotelModelContainer db = new Model.HotelModelContainer();
            Customer cus = db.Customer.Where<Customer>(c => c.ID == entity.ID).FirstOrDefault<Customer>();
            if (cus != null)
            {
                db.Customer.Remove(cus);

            }
            int count = db.SaveChanges();
            if (count > 0)
            {
                return true;
            }
            return false;
        }
        //更新实体
        public bool UpdateEntity(Model.Customer entity)
        {
            Hotel.Model.HotelModelContainer db = new Model.HotelModelContainer();
            // DbEntityEntry<Customer> entry = db.Entry<Customer>(entity);
            //entry.State = System.Data.EntityState.Unchanged;
            //entry.Property("CustomerName").IsModified = true;
            // entry.Property("Phone").IsModified = true;</span>
            db.Entry(entity).State = EntityState.Modified;
            int count = db.SaveChanges();
            if (count > 0)
            {
                return true;
            }
            return false;

        }
       
        //查询数据
        public IQueryable<Model.Customer> LoadEntities(Func<Model.Customer, bool> whereLambda)
        {
            HotelModelContainer db = new HotelModelContainer();
            return db.Customer.Where<Customer>(whereLambda).AsQueryable<Customer>();
        }
        //查询分页数据并排序
        public IQueryable<Customer> LoadPageEntities<s>(Func<Customer, bool> whereLambda, int pageSize, int pageIndex, out int totalCount, Func<Customer, s> orderByLambda)
        {
            HotelModelContainer db = new HotelModelContainer();
            totalCount = db.Customer.Where<Customer>(whereLambda).Count();
            IQueryable<Customer> customers = db.Customer.Where<Customer>(whereLambda)
                .OrderBy<Customer, s>(orderByLambda)
                .Skip<Customer>(pageSize * (pageIndex - 1))
                .Take<Customer>(pageSize)
                .AsQueryable<Customer>();
            return customers;
        }
        //依照编号删除
        public bool DeleteEntity(object Id)
        {
            Hotel.Model.HotelModelContainer db = new Model.HotelModelContainer();
            Customer cus = db.Customer.Where<Customer>(c => c.ID == (int)Id).FirstOrDefault<Customer>();
            if (cus != null)
            {
                db.Customer.Remove(cus);

            }
            int count = db.SaveChanges();
            if (count > 0)
            {
                return true;
            }
            return false;
        }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116252.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • GridView删除事件

    GridView删除事件首先:转摘一段GridView删除的文章RowDeleting和RowDeleted事件RowDeleting发生在删除数据之前,RowDeleted发生在删除数据之后。使用RowDeletin

    2022年7月3日
    23
  • 如何使用jMeter发送两个逻辑上相关的HTTP请求

    如何使用jMeter发送两个逻辑上相关的HTTP请求

    2021年5月27日
    99
  • BroadcastReceiver详解以及应用[通俗易懂]

    使用Android手机的时候,我们的手机管家中经常会出现开机自启动某某app,那么对于这个某某APP来说,他是怎么知道系统什么时候开机的呢?还有,系统短信怎么知道收到了短信?以及屏幕点亮与关闭、应用卸载与安装等等。这就讲到了Android四大组件之一:BroadcastReceiver,翻译是广播接收者。意思就是接收广播用的。他可以接收到系统开机完成的广播,以及系统电量不足的广播,以及系统收到短信的

    2022年4月18日
    55
  • pycharm 安装 cv2 遇到的坑[通俗易懂]

    pycharm 安装 cv2 遇到的坑[通俗易懂]网上找了很多教程都没成功!window764位系统python3.6pycharmctrl+alt+s 找到opencv-python直接安装 完全没问题。

    2022年8月28日
    6
  • Java学习之数据库连接池

    Java学习之数据库连接池0x00前言前面用到的jdbc,在每次连接数据库的时候都需要去重新建立对象。我们在这里会用到创建一个连接池,每次使用完后归还给连接池。0x01连接池概述连接池其实

    2021年12月12日
    42
  • ORACLE创建用户 管理用户常用语句

    ORACLE创建用户 管理用户常用语句创建用户的过程1创建用户Createuser用户名identifiedby密码;(如果是数字则要加双引号”111111”,如果是字母就不用)2授权给某个用户Grantconnect,resourceto用户名;(只有用户有了connect和resource后才能操作其他表)3授DBA权限Grantdbato用户名;

    2022年5月19日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号