C# Entity Framework The ObjectContext instance has been disposed and can no longer be used for operations that require a connection

The ObjectContext instance has been disposed and can no longer be used for operations that require a connection

该对象上下文实例已被释放,不能用于需要连接的操作。

shared context per request模式,缩短Entity实例的存在时间和降低Entity实例的共享性,并考虑性能,因为Entity需要手动Dispose。

        public override void Dispose()
        {
            string objectContextKey = "MIP_" + HttpContext.Current.GetHashCode().ToString("x"); if (HttpContext.Current.Items.Contains(objectContextKey))
            {
                SPMIPEntities ctx = HttpContext.Current.Items[objectContextKey] as SPMIPEntities; if (ctx != null)
                {
                    ctx.Dispose(); HttpContext.Current.Items.Remove(objectContextKey);
                }

            }
            base.Dispose();
        }

不能使用单例模式,静态方法就可以。

原文地址:https://www.cnblogs.com/hofmann/p/11750586.html

时间: 2024-10-22 21:09:03

C# Entity Framework The ObjectContext instance has been disposed and can no longer be used for operations that require a connection的相关文章

Entity Framework 丢失数据链接的绑定,在已绑好的EDMX中提示“Choose Your Data Connection”

早先做的一个练手的项目中, 使用到了Entity framework . 最近碰到一个问题,在edmx 里面选择“Update model from Database” 的时候提示了 “Choose Your Data Connection” 的数据库链接选择画面. 出现这个界面的话, 如果还继续走下去, 重新选择项目的DB connection的话, 原先已经加载到edmx的表,store procedure 等等 可能都需要删掉 ,再重新再加载一次. 表少点还好说, 多的话,就挺要命的. 花

Entity Framework 数据并发访问错误原因分析与系统架构优化

本文主要记录近两天针对项目发生的数据访问问题的分析研究过程与系统架构优化,我喜欢说通俗的白话,高手轻拍 1. 发现问题 系统新模块上线后,使用频率较高,故在实际使用和后期的问题重现测试中,产生了一下系列的数据访问错误 错误是比较常见的错误 2. 分析问题 系统的架构为前端.业务层与数据层三层架构,采用Entity Framework 3.5作为数据处理技术,采用shared context per request模式,参照的是codeplex上的一个示例.示例地址(此文通俗易懂,代码结构也很清晰

从Entity Framework的实现方式来看DDD中的repository仓储模式运用

一:最普通的数据库操作 static void Main(string[] args) { using (SchoolDBEntities db = new SchoolDBEntities()) { db.Students.Add(new Student() { StudentName = "nihao" }); db.SaveChanges(); } } domain 和 db 是怎么操作... DbSet<Student> 集合 [用于存放集合] 从名称中可以看出,是

ADO.NET Entity Framework学习笔记(3)ObjectContext

ADO.NET Entity Framework学习笔记(3)ObjectContext对象[转] 说明 ObjectContext提供了管理数据的功能 Context操作数据 AddObject 添加实体 将实体添加到集合中, 创建实体时,状态为EntityState.Detached 当调用AddObject将实体添加到Context时,状态为EntityState.Added myContext context = new myContext(); myTab r = new myTab(

Entity Framework 出现 &quot;此 ObjectContext 实例已释放,不可再用于需要连接的操作&quot; 的错误

原因 Entity的导航属性在View中使用,但是该Entity所在的Context已经在Controller中通过 using 释放掉:但是Entity又具有Deferred Query Evaluation性质,因此,导航属性对象没有被加载,从而出现上述错误. 解决方案 解决方法一:How to: Explicitly Load Related Objects 禁用Context的Deferred Query Evaluation,然后在查询结束后手动加载所有需要的导航属性 context.

Entity Framework教程(第二版)

源起 很多年前刚毕业那阵写过一篇关于Entity Framework的文章,没发首页却得到100+的推荐.可能是当时Entity Framework刚刚发布介绍EF的文章比较少.一晃这么多年过去了,EF6.1已经发布很久,EF7马上就到来.那篇文章已经显得相当过时,这期间园子里出现了很多介绍EF4/5/6版本的精彩文章,我的工作中也没有在持续使用EF,本来也就不准备再写现在这篇文章了.后来看到之前那篇文章还是有很多朋友在评论里给予鼓励,再加上自己确实在使用新版EF的过程中也总结了一些心得,解决了

Entity Framework 6 Recipes 2nd Edition(9-1)译-&gt;用Web Api更新单独分离的实体

第九章 在N层结构的应用程序中使用EF 不是所有的应用都能完全地写入到一个单个的过程中(就是驻留在一个单一的物理层中),实际上,在当今不断发展的网络世界,大量的应用程序的结构包含经典的表现层,应用程,和数据层,并且它们可能分布在多台计算机上,被分布到一台单独的计算机上的应用程序的某个领域的逻辑层,并不过多地涉及代理服务器编码,序列化,和网络协议,应用程序可以跨越很多设备,从小到一个移动设备到大到一个包含企业所有账户信息的数据服务器. 幸运的是,EF可应用于WCF,WEB Api等诸如此类的多层框

Entity Framework 基础

一.什么是Entity Framework 微软官方提供的ORM工具,ORM让开发人员节省数据库访问的代码时间,将更多的时间放到业务逻辑层代码上.EF提供变更跟踪.唯一性约束.惰性加载.查询事物等.开发人员使用Linq语言,对数据库操作如同操作Object对象一样省事. EF有三种使用场景,1. 从数据库生成Class,2.由实体类生成数据库表结构,3.  通过数据库可视化设计器设计数据库,同时生成实体类. O/RM是什么? ORM 是将数据存储从域对象自动映射到关系型数据库的工具.ORM主要包

Entity Framework技巧系列之十三 - Tip 51 - 55

提示51. 怎样由任意形式的流中加载EF元数据 在提示45中我展示了怎样在运行时生成一个连接字符串,这相当漂亮. 其问题在于它依赖于元数据文件(.csdl .ssdl .msl)存在于本地磁盘上. 但是如果这些文件存在于web服务器中或者类似的位置,甚至你无权访本地文件系统而无法把它们拷贝到本地呢? 原来你也可以由流中加载元数据,这篇提示将告诉你怎么做. 步骤1:获得用于CSDL,MSL与SSDL的XmlTextReaders: 这可以尽可能的简单,如'new XmlTextReader(url