我应该对 ObjectContext 使用 using 关键字吗?

2024-06-20

我在这个网站或 CodeProject 的某个地方读到,好的规则是,如果某个类已经实现了 IDisposable 接口,那么您应该使用 using 关键字,因为使用翻译成 MSIL 的关键字会尝试/最终阻止如下内容:

try
{
   //some logic 
}
finally
{
   if (obj != null)
      {
         obj.Dispose();
      }
}

但是在观看实体框架教程时,我遇到了这样的事情:

using(SampleBEntities db = new SampleBEntities()){//some logic here} 

并且SampleBEntities继承自ObjectContext并且在MSDN lib中ObjectContext没有实现IDisposable?


是的,它确实实现了IDisposable界面。

public class ObjectContext : IDisposable

Check MSDN http://msdn.microsoft.com/en-us/library/system.data.objects.objectcontext.aspx

它有方法Dispose()这来自于实施IDisposable界面。

如果它没有按照您所说的那样实现,则无需运行,它甚至无法编译。

使用语句

using 定义了一个范围,在该范围之外将处理一个或多个对象。

C# 通过 .NET Framework 公共语言运行时 (CLR) 自动释放用于存储不再需要的对象的内存。内存的释放是不确定的;每当 CLR 决定执行垃圾回收时,就会释放内存。

using 语句允许我们指定使用资源的对象何时应该释放它们。提供给 using 语句的对象必须实现 IDisposable 接口。该接口提供了 Dispose 方法,该方法应该释放对象的资源。

当到达 using 语句末尾或者抛出异常并且控制在语句结束之前离开语句块时,可以退出 using 语句。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该对 ObjectContext 使用 using 关键字吗? 的相关文章

随机推荐

  • 将浮点变量显示为十六进制整数会扰乱相邻整数

    我有这个简单的程序 include
  • AngularJS 中的 foreach 循环

    我正在经历forEach loop in AngularJS 有几点我不明白 迭代器函数有什么用 没有它还有什么办法吗 如下所示的key和value有何意义 angular forEach scope data function value
  • 在 Blackberry Webworks 上发送带有标头的 AJAX 请求时出现问题

    我正在开发一个 Blackberry webworks 应用程序 但在向服务器发出 AJAX 请求时遇到了问题 我正在即时学习 HTML Javascript AJAX 所以请原谅任何初学者的错误 基本上 格式化的 HTTP 请求是向服务器
  • 将庞大数据库从亚马逊RDS导出到本地mysql

    我在 Amazon RDS 上有一个 mysql 数据库 大约 600GB 数据 我需要将其移回本地专用服务器 但我不知道从哪里开始 每次我尝试初始化 sqldump 时它都会冻结 有没有办法将其移至 S3 甚至可能在开始下载之前将其分成更
  • C# CA2000:使用 FileStream/XmlTextReader 在失去范围之前释放对象

    我有很多这样的代码 FileStream fs File Open C Temp SNB RSS xml FileMode Open using XmlTextReader reader new XmlTextReader fs Some
  • div 在显示内的定位:IE 10 中的表格单元格

    试图理解为什么 IE9 10 会因为 IE7 8 FF WK 都按预期渲染的内容而感到窒息 有什么技巧可以让 IE 9 10 正确尊重 表格单元格 的固有高度 重要提示 由于多种原因 我无法在 单元格 div 上使用 height 100
  • 单词之间没有空格的语言(例如亚洲语言)中的断词?

    我想让 MySQL 全文搜索适用于日语和中文文本以及任何其他语言 问题在于这些语言以及可能其他语言通常在单词之间没有空格 当您必须键入与文本中相同的句子时 搜索没有用 我不能只在每个字符之间添加空格 因为英语也必须有效 我想用 PHP 或
  • 两个 Div 之间的固定宽度间隙

    有谁知道如何修复两个 div 之间的间隙 我有一个主要内容 Div 里面有两个带有图片的 Div 视图的宽度为 768 像素 当我开始拉伸视图时 两张图片开始相互远离 但理想情况下 主要内容 Div 应该在周围有空白的情况下拉伸 并且图片之
  • Angular 2 中的变更检测

    我正在将角度 1 和角度 2 集成在一起 因此我有角度 1 控制器和服务以及角度 2 组件 这些对于数据检索和存储来说工作得很好 反之亦然 下面是我的 html 页面 h3 Angular 1 service h3 div div
  • 错误 com.sap.xs2.security.commons.SAPOfflineTokenServices - 加载 JWT 库时出错

    根据你的Answer https stackoverflow com questions 53343556 invalid bean definition with name offlinetokenservices defined in
  • 如何在报表查看器中添加参数?

    嘿 我在 Visual Studio 2010 中有一个表单应用程序 我想使用报表查看器创建一个报表并添加一些参数 我尝试从代码中添加参数 但没有成功 我有这个错误 tablix Tablix1 的 FilterExpression 表达式
  • .showsPhysics 内存泄漏

    我最近花了 5 个小时尝试调试 Spritekit 应用程序中的内存泄漏 应用程序启动后 我注意到内存使用量略有上升 我花了 5 个小时中的 3 个小时挖掘参考资料 了解强与弱的关系ARC https developer apple com
  • 使用 javax.sound.midi 接收 MIDI 输入

    我想要一个程序 当它获得 MIDI 输入时可以做一些事情 例如 当我单击控制器上的按钮 1 时 它应该打印 您单击了 btn 1 当我单击按钮 2 时 它应该打印 您单击了 btn 2 我尝试使用 javax sound midi 库 但论
  • 如何在 64 位中构建 Boost 1.64?

    我运行的是 Windows 10 并在我的笔记本电脑上安装了 Visual Studio 2017 Community Edition 我有一些旧程序在 64 位 Boost 1 62 0 的 VS 2015 中编译得很好 由于一些非常奇怪
  • SWT 表:如何设置/获取“焦点”行

    On Windows and Linux when holding down the Ctrl key one can move up and down using the caret keys without changing the s
  • 使用 Spring AOP 记录方法条目[重复]

    这个问题在这里已经有答案了 任何人都知道如何在跟踪级别使用 Spring AOP 和 log4j 记录方法条目 包括参数值 并退出 它应该能够记录多个包中的类 您可以使用 大约 用于此类目的的方面 Component Aspect Orde
  • 图像处理以提高 tesseract OCR 准确性

    我一直在使用 tesseract 将文档转换为文本 文档的质量参差不齐 我正在寻找有关哪种图像处理可以改善结果的提示 我注意到高度像素化的文本 例如由传真机生成的文本 对于超正方体来说尤其难以处理 大概所有这些字符的锯齿状边缘都会混淆形状识
  • 不使用 BuildContext 预加载图像

    有没有办法在函数中加载 Flutter 中的图像而无需访问 BuildContext Flutter 可以预加载图像precacheImage 需要BuildContext 使用起来不方便 我想加载图像initState StatefulW
  • PhoneGap for Windows Phone - 文件扩展名“.js”没有脚本引擎

    我使用 Microsoft Visual Studio 创建了新项目 但出现编译错误 如下所示 文件扩展名 js 没有脚本引擎 命令 CScript c users raja documents visual studio 2010 Pro
  • 我应该对 ObjectContext 使用 using 关键字吗?

    我在这个网站或 CodeProject 的某个地方读到 好的规则是 如果某个类已经实现了 IDisposable 接口 那么您应该使用 using 关键字 因为使用翻译成 MSIL 的关键字会尝试 最终阻止如下内容 try some log