猿问

一个很模糊的问题请高手指点

我在学习用三层开发(当然我是菜鸟)、

底层ORM Linq2Sql

看Bll 的代码


    public class Area    
 {        
  public EntitiesDataContext Entities = new EntitiesDataContext();
        /// <summary>
        /// 还回所有行
        /// </summary>
        /// <returns></returns>
        public IQueryable<TbArea> GetAll()
        {
            return Entities.TbArea;
        }
 }


操作

public class AreaController : Controller
{
        public Area Area = new Area();

        public ActionResult Display(string id)        
  {
            var area = Area.GetEntityById(id) ?? new TbArea().Initialize();
            return View(area);
        }



每次代码运行到 public Area Area = new Area();
它都会执行一次public EntitiesDataContext Entities = new EntitiesDataContext();

感觉很费资源。
请问我要怎么作优化?


阿晨1998
浏览 196回答 4
4回答

拉风的咖菲猫

最简单的办法是在Area里加一个静态变量public static Area Instance=new Area();然后全都通过这个变量访问Area,Area.Instance.GetEntityById(id),你控制器里也不需要实例化Area类了,访问Instance就够了

繁星淼淼

使用单例模式

一只斗牛犬

public EntitiesDataContext Entities = new EntitiesDataContext(); 直接把这个变成静态变量就可以了

白板的微信

Linq 下用单例模式 你会发现,数据库更新了数据,而查询出来的数据去没有改变! 就因为这样,我才不用 单例模式的。 请高手指点
随时随地看视频慕课网APP
我要回答