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

关于entity framework4.1的上下文释放问题
一直在想一个问题
如果把ef的上下文,比如说 继承了DbContext的MyContext在实体类内部实例化
然后在实体类的析构方法里面把上下文释放掉

比如说

C# code

    public class Toka
    {
        private MyContext db = new MyContext();

        public string a { set; get; }

        public void Create()
        {
            db.Tokas.Add(this);
        }

        ~Toka()
        {
            db.Dispose();
        }



这样会不会导致一些效率问题(貌似,似乎还很严重?)

------解决方案--------------------
db应该是经常访问的对象, 一般都是将数据访问对象放在BaseControl.cs

C# code

 protected MyContext db = new MyContext ();

        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }

------解决方案--------------------
探讨

db应该是经常访问的对象, 一般都是将数据访问对象放在BaseControl.cs

C# code

protected MyContext db = new MyContext ();

protected override void Dispose(bool disposing)
{
db.Dispose();
……