日期:2014-05-17  浏览次数:20807 次

两段代码的比较问题。。。 让标题长起来
刚开始用MVC,开始写的CODE1,总监看了提出改成code2。 
这两段代码有什么区别?
code2的优点在哪儿?


        [HttpPost]
        public ActionResult Create(Movie newMovie)
        {
            MovieDBContext db = new MovieDBContext();

            if (ModelState.IsValid)
            {
                db.Movies.Add(newMovie);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            else
                return View(newMovie);
        }



        [HttpPost]
        public ActionResult Create(Movie newMovie)
        {
            using (MovieDBContext db = new MovieDBContext())
            {

                if (ModelState.IsValid)
                {
                    db.Movies.Add(newMovie);
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
                else
                    return View(newMovie);
            }
        }

------解决方案--------------------
code2的好处是db对象用完后会自动释放
而code1不会释放,你要自己写释放代码
------解决方案--------------------
using  会释放资源
继承自IDisposable的类都可以使用这种方式释放资源
------解决方案--------------------
用using
第一,引用程序集
第二,自动释放资源