为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

阿晨1998 2018-12-07 11:40:12
我在学习用三层开发(当然我是菜鸟)、底层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();感觉很费资源。请问我要怎么作优化?
查看完整描述

4 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

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

查看完整回答
反对 回复 2019-01-21
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

使用单例模式

查看完整回答
反对 回复 2019-01-21
?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

public EntitiesDataContext Entities = new EntitiesDataContext();

直接把这个变成静态变量就可以了

查看完整回答
反对 回复 2019-01-21
?
白板的微信

TA贡献1883条经验 获得超3个赞

Linq 下用单例模式 你会发现,数据库更新了数据,而查询出来的数据去没有改变! 就因为这样,我才不用 单例模式的。
请高手指点
查看完整回答
反对 回复 2019-01-21
  • 4 回答
  • 0 关注
  • 195 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信