Dispose 如何与实体框架配合使用

2024-04-23

有人可以向我解释一下我们如何以及为什么需要使用 Dispose() 吗?它是 ASP.NET MVC 4 附带的默认控制器模板的一部分。当对象(在本例中是数据库中的数据)不再使用时,.NET 中的垃圾收集器是否应该自动启动?

从数据库加载时应使用 Dispose() 而不是常规对象分配,这是否正确?


Dispose在处理非托管资源时使用(可以说是一次性模式)。是的,.NET 垃圾收集器将清理 .NET 托管对象,但数据库连接是不由 .NET Framework 管理的较低级别对象。文件处理程序也是如此——在打开/写入文件时使用 Dispose 模式,因为实际的文件句柄不是由 .NET 管理的。

The MSDN 文档 http://msdn.microsoft.com/en-us/library/system.idisposable.aspx描述IDisposable以及为什么要实施它。

EF 使用它是因为在DbContext is a DbDataConnection,它适用于非托管资源。在这些情况下,最好实施IDisposable并相应地清理非托管资源。

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

Dispose 如何与实体框架配合使用 的相关文章

  • 如何在 C# 事件中区分更改是由代码还是由用户进行?

    我有一个简单的TextBox一开始是空的 我有一个简单的事件 TextChanged 可以知道用户何时更改了其中的任何内容TextBox 但是 如果我自己在代码中对其执行任何操作 该事件就会触发 喜欢设置textbox Text Test
  • 为什么C Clock()返回0

    我有这样的事情 clock t start end start clock something else end clock printf nClock cycles are d d n start end 我总是得到输出 时钟周期是 0
  • 浮点提升:stroustrup vs 编译器 - 谁是对的?

    在 Stroustrup 的新书 C 编程语言 第四版 第 10 5 1 节中 他说 在执行算术运算之前 整数提升用于从较短的整数类型创建整数 类似地 浮点提升是用于从浮点数创建双精度数 我用以下代码确认了第一个声明 include
  • 如果验证失败,如何在 ASP.NET MVC 中阻止 jquery ajax 提交

    我在用ASP NET 5 MVC RC1 我的 ASP NET MVC 使用的 jquery 验证插件是默认 ASP NET 5 模板项目使用的标准 jquery validate js jQuery Validation Plugin v
  • Linq Where 本地计数器关闭在 VS watch 中的结果不同

    我尝试删除前 3 个元素array与 LinQWhere扩展功能 这是一个例子 var array new 1 2 3 4 5 6 7 8 9 var count 3 var deletedTest1 0 var test1 array W
  • 字节到二进制字符串 C# - 显示所有 8 位数字

    我想在文本框中显示一个字节 现在我正在使用 Convert ToString MyVeryOwnByte 2 但是 当字节开头有 0 时 这些 0 就会被删除 例子 MyVeryOwnByte 00001110 Texbox shows g
  • 对数字进行向上和向下舍入 C++

    我试图让我的程序分别向上和向下舍入数字 例如 如果数字是3 6 我的程序应该四舍五入最接近的数字 4 如果该数字是3 4 它将向下舍入为 3 我尝试使用ceil库获取 3 个项目的平均值 results ceil marks1 marks2
  • C++ 在 Vector 中使用不可分配的对象

    我想将对象列表存储在std vector 但对象包含引用且无法分配给 但是 我可以复制构造该对象 我能想到的唯一选择是使用指针来包装对象并在需要分配指针时重新设置指针 但这样做的语法会显着降低可读性 特别是在使用迭代器时 我更喜欢另一种选择
  • C中有const吗?

    这个问题可能很幼稚 但是 有没有constC 中的关键字 从哪个版本开始 之间有任何语义和 或句法差异吗const在 C 和 C 中 C 和 C 之间在语法上没有差异const关键字 除了一个相当晦涩的关键字 在 C 中 自 C99 起 您
  • PL/SQL 过程:如何返回 select 语句?

    我想创建一个存储过程 on ORACLE数据库服务器我的问题是 我不知道如何返回 select 语句 这是程序中应包含的逻辑 输入参数 过滤器1 int 过滤器2 字符串 with cte as select val1 val2 stdde
  • _mm_max_ss 在 clang 和 gcc 之间有不同的行为

    我正在尝试使用 clang 和 gcc 交叉编译一个项目 但在使用时发现一些奇怪的差异 mm max ss e g m128 a mm set ss std numeric limits
  • 抽象类和接口之间的区别[重复]

    这个问题在这里已经有答案了 可能的重复 接口与基类 https stackoverflow com questions 56867 interface vs base class 我不明白抽象类和接口之间的区别 我什么时候需要使用哪种字体
  • 为什么 C 函数不能返回数组类型?

    我是 C 语言新手 想知道 为什么 C 函数不能返回数组类型 我知道数组名是数组第一个值的地址 而数组是 C 中的二等公民 您自己已经回答了这个问题 数组是二等公民 C 按值返回 数组不能按值传递 因此不能返回它们 至于为什么数组不能按值传
  • 如何从枚举中选择随机值?

    给定 C 中的任意枚举 如何选择随机值 我没有找到这个非常基本的问题 我会在一分钟内发布我的答案作为任何人的参考 但请随意发布你自己的答案 Array values Enum GetValues typeof Bar Random rand
  • OpenMP C 程序运行速度比顺序代码慢

    我是 OpenMP 的新手 正在尝试并行化 Jarvis 的算法 然而事实证明 与顺序代码相比 并行程序花费的时间要长 2 3 倍 难道问题本身就不能并行化吗 或者我并行化它的方式有问题 这是我针对该问题的 openMP 程序 其中有 2
  • 在 unix 中编译 dhrystone 时出错

    我是使用基准测试和 makefile 的新手 我已经从下面的链接下载了 Dhrystone 基准测试 我正在尝试编译它 但我遇到了奇怪的错误 我尝试解决它 但没有成功 有人可以帮助我运行 dhrystone 基准测试吗 以下是我尝试编译的两
  • 如何使复选框不可选择?

    我想知道你是怎么做的CheckBox在c 中无法选择 我认为这会是类似 SetSelectable false 之类的东西 但我似乎看不到该方法 I found CanSelect但这似乎是只读属性 您可以设置自动检查 http msdn
  • 如何仅更改 DateTime 的日期部分,同时保留时间部分?

    我在代码中使用了很多 DateTime 我想将这些日期时间更改为我的特定日期并保留 时间 1 2012 02 02 06 00 00 gt 2015 12 12 06 00 00 2 2013 02 02 12 00 00 gt 2015
  • Windows 上 libcurl 的静态库[重复]

    这个问题在这里已经有答案了 如何将此库 libcurl 静态链接到 exe 我努力了 disable share enable static 没有帮助 我使用的是MingW32 有没有一种简单的方法来静态链接这个库 这样我的应用程序就不再有
  • 当我读取 500MB FileStream 时出现 OutOfMemoryException

    我使用 Filestream 读取大文件 gt 500 MB 但出现 OutOfMemoryException 任何有关它的解决方案 我的代码是 using var fs3 new FileStream filePath2 FileMode

随机推荐

  • 所有 iPad 和 iPad Pro 的视图之间的间距是否规则/规则?

    我最近遇到了不同 iPad 之间常规 常规尺寸类别的差异 这是我的相关问题所有 iPad 包括 iPad pro 的常规 常规头寸大小限制 https stackoverflow com questions 33958858 regular
  • 从 Angular2 服务返回一个空的 Observable

    我正在构建一个 Angular 2 应用程序 它使用服务来收集数据 该服务确实包含以下逻辑 CORE COMPONENTS import Injectable from angular core import Http Response f
  • 如何使用变量名称通过 ddply 引用数据框列?

    我正在尝试编写一个函数 该函数将保存时间序列数据的数据框的名称和该数据框中的列的名称作为参数 该函数对该数据执行各种操作 其中之一是在列中添加每年的运行总计 我正在使用plyr 当我直接将列名与 ddply 和 cumsum 一起使用时 没
  • 如何在 MySQL 中将 SELECT ON 表名授予 PUBLIC

    我是 MySQL 新手 我试图弄清楚如何使所有经过身份验证的用户都可以公开读取表格 在甲骨文中我会说grant select on tablename to public 该语法不适用于 MySQL 我无法找出等效的语法 Per MySQL
  • 查找向量中最近的点

    给定一个具有多个值的排序向量 如下例所示 std vector
  • nginx 缓存 HTML 文件该怎么办?

    我一直遇到缓存问题HTML我的项目中的文件 我有一个针对静态资源 图像 脚本 CSS 等 的缓存清除机制 但所有这些解决方案似乎都无法处理HTML缓存问题 I added expires 0 to Nginx on all HTML文件 但
  • AngularJs:只有单击两次后才会登录

    我是 AngularJs 的新手 我正在开发一个小型的角度应用程序 我的方法 我的 index html 页面有 2 部分 一个ng view and a 带有 4 个导航按钮的 div div 最初使用 ng show ng show v
  • #define 导致“预期的主表达式”错误

    define N 10 int main int x for int i 0 i
  • TVirtualStringTree 中的自动调整列大小

    攀登 TVirtualTreeView 的学习之山 我尝试创建一个自定义后代 以确保在调整控件大小时 最后一列的宽度完全填充控件的宽度 而不需要水平滚动条 我看到许多与 AutoFitColumns 相关的项目 一个方法和许多事件 但没有涵
  • 如何使用 LINQ 计算与条件匹配的元素数量

    我尝试了很多事情 但对我来说最合乎逻辑的似乎是这个 int divisor AllMyControls Take p gt p IsActiveUserControlChecked Count AllMyControls是一个集合UserC
  • 在屏幕上滑动手指激活按钮,就像按下按钮一样

    如果我的标题不够清楚 我会详细解释一下 假设我们有一个充满多个按钮 10 多个 的屏幕 我们按下一个按钮 激活 onTouch onClick 如果我们现在移动手指而不抬起它 我希望它激活它滑过的任何其他按钮 在这种特殊情况下 我希望当您滑
  • 使用 PHP 将音频文件转换为波形

    我正在寻找 PHP 类 它将获取音频文件并返回波形的图像文件 可以在此处看到类似的效果http soundcloud com rollin fire cru sets house house house house http soundcl
  • 如何获取Linux发行版名称和版本?

    在 Windows 中我读取注册表项SOFTWARE Microsoft Windows NT CurrentVersion ProductName获取操作系统的全名和版本 但在Linux中 代码 struct utsname ver un
  • 如何获取 CD/DVD 驱动器上文件更改的通知?

    我是 C 新手 必须使用 C 开发 Windows 窗体应用程序 该应用程序应跟踪以下内容 监控外部和内部的 CD DVD 驱动器 监控 CD DVD 驱动器上创建 修改和删除的文件 我可以通过以下方式获取 CD DVD 驱动器插入的系统通
  • 有没有办法在jupyter中一次删除所有单元格?

    我每天都会在堆栈溢出中回答 pandas 问题之前尝试我的解决方案 通常两到三天后 我使用的 jupyter 笔记本将有 n 个单元 除了通过删除当前笔记本创建新笔记本之外 还有其他方法可以一次性删除所有单元吗 D D一次删除一个单元格 您
  • VideoView 未从所需位置播放视频

    我正在使用VideoView和搜索栏 但是当我通过seekBar在所需位置上seekTo 时 它从头开始播放视频 我尝试这段代码 public void onProgressChanged SeekBar seekBar int progr
  • 如何将 ToolbarItem 放置在后缘?

    我试图将工具栏项目放置在工具栏 MacOS 的后缘上 我浏览了文档 发现以下内容 automatic 项目被放置在center bottomBar 对于 MacOS 不适用 cancellationAction 与工作表相关 confirm
  • Android针对不同屏幕应用样式

    我有一个应用程序 需要在两个不同的设备上运行 600x1024 480x800 对于这些设备 我想应用不同的样式 它们具有不同的比例 我该怎么做 因为它们都有 hdpi values hdpi values mdpi没有效果 P S And
  • 确定 python 函数是否已更改

    Context 我正在尝试在数据处理框架中缓存执行 kedro http kedro readthedocs io 为此 我想为 python 函数开发一个独特的哈希值 以确定函数体 或该函数调用的函数和模块 中的任何内容是否已更改 我调查
  • Dispose 如何与实体框架配合使用

    有人可以向我解释一下我们如何以及为什么需要使用 Dispose 吗 它是 ASP NET MVC 4 附带的默认控制器模板的一部分 当对象 在本例中是数据库中的数据 不再使用时 NET 中的垃圾收集器是否应该自动启动 从数据库加载时应使用