我在学习用三层开发(当然我是菜鸟)、
底层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();
感觉很费资源。
请问我要怎么作优化?
最简单的办法是在Area里加一个静态变量public static Area Instance=new Area();然后全都通过这个变量访问Area,Area.Instance.GetEntityById(id),你控制器里也不需要实例化Area类了,访问Instance就够了
使用单例模式
public EntitiesDataContext Entities = new EntitiesDataContext();
直接把这个变成静态变量就可以了