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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux读写锁_共享内存读写锁

    linux读写锁_共享内存读写锁一、读写锁是什么?读写锁其实还是一种锁,是给一段临界区代码加锁,但是此加锁是在进行写操作的时候才会互斥,而在进行读的时候是可以共享的进行访问临界区的ps:读写锁本质上是一种自旋锁二、为什么需要读写锁?有时候,在多线程中,有一些公共数据修改的机会比较少,而读的机会却是非常多的,此公共数据的操作基本都是读,如果每次操作都给此段代码加锁,太浪费时间了而且也很浪费资源…

  • candump命令_生成dump文件命令

    candump命令_生成dump文件命令hexdump以ASCII、十进制、十六进制或八进制显示文件内容。

  • 2021年 全网最细大数据学习笔记(一):初识 Hadoop

    2021年 全网最细大数据学习笔记(一):初识 Hadoop文章目录一、大数据1、大数据的定义2、大数据的特点3、大数据行业应用4、Hadoop与大数据5、其他大数据处理平台6、大数据人才三、一、大数据随着近来计算机技术和互联网的发展,大数据这个名词越来越多地进入到我们的视野中,大数据的快速发展也无时刻影响着我们的生活。1、大数据的定义大数据从字面来理解就是大量的数据。日常生活离不开数据,可以说每时每刻都在产生着数据。例如,一分钟可以做些什么事呢?在日常生活中,一分钟可能连一页书都看不完。但是一分钟内产生的数据却是庞大的。据统计,在一分钟内,YouTu

  • FlashFXP 3.6 Final(正式版)注册码

    FlashFXP 3.6 Final(正式版)注册码昨天登陆FTP提示是否要升级,也没有注意点了下同意,结果升级后是最新英文版本的,把原来的资料也给丢了,忙了半天一看原来的注册码已经不好使用,在网上搜索下,找到一个可以使用的注册码和大家分享下:———————————————————FLASHFXPxgA9UrTnxgAAAAC7W5MNJwTnsl73n0Vuu1AePJgEAG41mgSvHSiDWi1Kg8B5xJNCCCAVCMr9R

  • 《大型网站技术架构》读书笔记一:大型网站架构演化

    思维导图一、大型网站系统特点(1)高并发、大流量:PV流量巨大(2)高可用:7*24小时不间断服务(3)海量数据:文件数目分分钟XXTB(4)用户分布广泛:网络情况复杂(5)安全环境恶劣:

    2021年12月29日
  • win10配置服务开机运行ElasticSearch「建议收藏」

    win10配置服务开机运行ElasticSearch

发表回复

您的电子邮箱地址不会被公开。

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