首页 新闻 会员 周边

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

0
[已解决问题] 解决于 2012-08-21 14:42

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

底层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();

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


wunaigong的主页 wunaigong | 初学一级 | 园豆:4
提问于:2011-06-12 22:01
< >
分享
最佳答案
0

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

奖励园豆:5
七月霄雨 | 小虾三级 |园豆:1282 | 2011-06-12 22:06
其他回答(2)
0

使用单例模式

紫斌 | 园豆:205 (菜鸟二级) | 2011-06-12 22:21
0

public EntitiesDataContext Entities = new EntitiesDataContext();

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

李.net | 园豆:730 (小虾三级) | 2011-06-13 09:23
Linq 下用单例模式 你会发现,数据库更新了数据,而查询出来的数据去没有改变! 就因为这样,我才不用 单例模式的。
请高手指点
支持(0) 反对(0) wunaigong | 园豆:4 (初学一级) | 2011-06-13 09:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册