在EF中使用Dispose时处理的ObjectContext

时间:2017-02-28 09:28:39

标签: sql entity-framework model-view-controller

我在我的项目中使用Entity Framework,我决定改变标准方式,这意味着使用'使用'。 我编写了用于沟通数据库的数据库层,但有时会返回此错误,请帮我修复此问题:

  

类型' System.ObjectDisposedException'的异常发生在   EntityFramework.SqlServer.dll但未在用户代码中处理

     

附加信息:ObjectContext实例已被释放   并且不能再用于需要连接的操作。

这是我的BaseController代码:

//For Data Accsess
        public CBEntities DB
        {
            get
            {
                return DataAccsesLayer.DbeEntities;
            }
        }

protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (DataAccsesLayer.DbeEntities != null)
                {
                    DataAccsesLayer.DbeEntities.Dispose();
                    DataAccsesLayer.DbeEntities = null;
                }
            }
            base.Dispose(disposing);
        }

数据项目:

//this part of code is member of Data project which is Data Layer
     public static class DataAccsesLayer
        {
            private static CBEntities _context;

            public static CBEntities DbeEntities
            {
                get
                {
                    if (_context == null)
                    {
                        _context = new CBEntities();
                        return _context;
                    }
                    else
                    {
                        return _context;
                    }
                }
                set { _context = value; }
            }
        }

0 个答案:

没有答案