ObjectContext 实例已被释放 - Winforms Entity Framework

2023-12-01

I am trying to solve this problem and did read content regarding this error but was unable to figure out a solution. I am building a winforms application using Entity framework for a simple Products Categories scenario. Here is a snapshot of my model. Edmx

ProductService 类中检索所有产品的代码是

public static List<Product> GetAllProducts()
{
    List<Product> products = new List<Product>();
    using (var entity = new SUIMSEntities1())
    {
        products = (from p in entity.Products
                    select p).ToList();
        return products;
    }            
}

产品代码后面的代码是

List<Product> prods=ProductServices.GetAllProducts();
dgvProducts.DataSource = prods;

When I try to load the Products in datagridview, the following error is shown: enter image description here

您能告诉我是什么原因导致了这个问题吗?

Edit:Include 成功了,在这个特定场景中,我更改了 GetAllProducts() 如下

        public static List<Product> GetAllProducts()
        {
            using (var entity = new SUIMSEntities1())
            {
                List<Product> products = entity.Products.Include("Category").ToList();
                return products;                
            }            
        }

默认情况下,实体框架 (EF) 将延迟加载您的类别对象集。由于您的 Category 对象集是延迟加载的,因此当其他代码稍后引用 Category 时,EF 将尝试加载该集。但是,此时您的上下文已被处理,导致您看到错误。

您需要做的是强制上下文急切地加载您的类别实体集,如下所示:

public static List<Product> GetAllProducts()
{
    List<Product> products = new List<Product>();
    using (var entity = new SUIMSEntities1())
    {
        entity.Include("Category");  //force eager loading of Category
        products = (from p in entity.Products
                    select p).ToList();
        return products;
    }            
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ObjectContext 实例已被释放 - Winforms Entity Framework 的相关文章

  • 使用 C++ 拆分“[常规设置]”格式的节字符串

    我是 C 新手 我想读取包含部分和键值对的 ini 文件 根据部分 我想读取相应键的值 首先 我想阅读方括号内的部分 请帮忙 谢谢 对于真正的 INI 文件解析 我强烈建议iniparser库 http ndevilla free fr i
  • 使用 JSON 格式正确配置 NLog 到 IHostBuilder

    我有以下代码 应该接受 NLog 的 JSON appsettings 配置 然后使用它来创建 NLog LogFactory 这个 NLog 工厂应该被传递到 MyService 类中 以便在那里创建一个记录器 class Program
  • 代码块 power 函数在 c 中不起作用

    我正在使用代码块来学习c 我的代码是 include
  • Confuser .NET 混淆器。安全吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在开发一个应用程序 其中阻止用户反编译代码非常重要 现在 我意识到 如果由经验丰富的程序员执行 大多数 exe 都是可反编译的
  • C++:将模板参数的模板类型成员添加为好友的正确语法?

    我有一个带有模板类型参数 tTRAIT 的类 我想加一个模板为好友type member aliastTRAIT 但我无法弄清楚语法 这可能吗 template
  • 使用 size_t 值反向遍历向量

    我想以相反的方向遍历向量的值 如您所知 向量的大小为 size t 当我使用以下代码时 for size t r m size 1 r gt 0 r x r f r for size t c r 1 c lt m size c x r m
  • 读取STM32 MCU SPI数据寄存器的值

    有很多类似的问题 但似乎没有一个问题完全相同 我正在将 STML4 MCU 连接到 6 轴传感器 LSM6DS3 我已经成功地在 I2C 中实现了所有内容 但想要 SPI 的额外速度 和 DMA 如果我能让这些第一步工作起来的话 因此 第一
  • WinForms - 表单大小错误

    我们有以下代码 private void MainForm Shown object sender EventArgs e RepositionForm private void RepositionForm Rectangle rect
  • C++:初始化静态字符串成员

    我在 C 中初始化静态字符串成员时遇到一些问题 我有几个类 每个类都包含几个表示 id 的静态字符串成员 当我通过调用静态函数初始化变量时 一切都很好 但是 当我想为一个变量分配另一个变量的值时 它仍然保留空字符串 这段代码有什么问题 st
  • 使用 INotifyPropertyChanged

    有人可以解释一下为什么在 wpf 中使用绑定时需要使用 INotifyPropertyChanged 的 实现吗 我可以在不实现此接口的情况下绑定属性吗 例如我有代码 public class StudentData INotifyProp
  • Visual Studio Code 调试默认 ASP.NET Core MVC WebApp:不起作用

    我正在使用 Manjaro linux 并尝试调试默认的 ASP NET Core MVC 项目 但调试停止 没有任何错误 我创建了该项目 dotnet new mvc in a Meow文件夹 没什么特别的 然后添加了新的配置 NET C
  • 数组与映射的性能

    我必须循环一个大数组中的元素子集 其中每个元素都指向另一个元素 问题来自于检测大图中的连接组件 我的算法如下 1 考虑第一个元素 2 将下一个元素视为前一个元素所指向的元素 3 循环直到没有发现新元素 4 考虑1 3中尚未考虑的下一个元素
  • SQL参数化查询不显示结果

    我的 DataAcess 类中有以下函数 但它没有显示任何结果 我的代码如下 public List
  • 该组件没有由 uri 标识的资源

    我想创建一个通用数据网格以在我的所有视图 用户控件上使用 这是我的结构 Class Library called Core Class called ViewBase public class ViewBase UserControl pu
  • EWS - 给予预约,获取预约的所有者副本

    在 EWS 中进行预约后 是否可以获得所有者的副本 例如 如果我登录为user1 我有user1创建的约会的副本user2 我有冒充权 我要编辑user2预约的副本 我怎样才能获得user2 s copy 您可以使用 PidLidClean
  • 为什么调试器只显示数组指针中的一个元素?

    首先 我知道new是执行此操作的 C 方法 我只是表明有不止一种方法可以重现此错误 而且两种方法都令人难以置信的令人沮丧 我有两种形式的源文件 我正在尝试调试另一个编程作业 但我并没有寻求帮助 基本上 我正在尝试重新实施set作为一个类 具
  • 如何在给定点停止线程?

    我试图停止一些线程 阅读一些有关优雅地执行此操作的正确方法的内容 但我一定做错了什么 因为它根本不起作用 起初我尝试不使用lock with IsRunning不稳定 然后尝试使用锁 这是我所拥有的 private volatile boo
  • 在 C# WinForms 中预览文档(Word、Excel、PDF、文本文件等)?

    我正在开发一个 C WinForms 应用程序 我希望能够 预览 其中的各种文档类型 也就是说 当用户从列表中选择文件名时 它会在下面以相同的形式显示所选文件的预览 这很像 Outlook 允许您无需双击即可预览选定邮件的方式 有没有什么方
  • 从 STL 列表中删除项目

    我想创建一个函数 如果符合特定条件 则将项目从一个 STL 列表移动到另一个列表 这段代码不是这样做的方法 迭代器很可能会被擦除 函数失效并导致问题 for std list
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所

随机推荐

  • Xcode 10 Beta 6 Playground 中未调用 Deinit 方法

    我正在探索内存管理概念并发现deinit方法没有调用Xcode 10 beta 6 游乐场 最初我认为可能是代码中存在一些问题 然后我在 Xcode 9 4 1 Playground 和 Xcode 10 beta 6 示例应用程序中测试相
  • fetch() 在 Firefox 中使用 SSL 客户端身份验证失败

    我有一个使用 SSL 客户端身份验证的 Web 服务器 该服务器上的网页具有同源性GET请求使用fetch API 在 Chrome 中 客户端证书按照预期在 SSL 握手中发送 从而产生 200 ok 响应 在 Firefox 中 不会发
  • 如何在触摸屏上关闭 Windows 8.1 手势和设置超级按钮栏

    我安装了戴尔触摸屏和 Windows 8 1 单语言 当我将手指从右边缘向中间移动时 Windows 8 将调出设置超级栏 或者当我将手指从中上边缘向下移动时 Windows 8 会隐藏我的应用程序并调出开始菜单 这是一个问题 因为我正在
  • JSON复杂类型,可以是一个对象或对象数组[重复]

    这个问题在这里已经有答案了 我正在尝试处理一个对象 该对象可以是对象数组 也可以只是对象 仅当 naics 是对象而不是数组时 使用下面的代码才有效 我究竟做错了什么 这是我能想到的最短的例子 section 52 219 1 b naic
  • 如何在 Xcode 4.2 上为 IOS 5 创建 UITableView?

    上周我下载了 Xcode 4 2 所以当我开始构建应用程序时 我尝试添加一个UITableView到我的一个项目 就像我开始开发以来一直在做的那样 但是UITableView不工作 我一直在寻找教程 但没有找到任何教程 如何在 Xcode
  • python 基于键匹配合并字典的最快方法

    我有 2 个字典列表 列表 A 长 34 000 列表 B 长 650 000 我本质上是根据键匹配将所有列表 B 字典插入到列表 A 字典中 目前 我正在做显而易见的事情 但这需要很长时间 说真的 就像一天一样 一定有更快的方法 for
  • 如何从秘密管理器获取私钥?

    我需要在 AWS 中存储私钥 因为当我从 AWS 创建 ec2 实例时 我需要使用此主键在配置程序 remote exec 中进行身份验证 我不想保存在存储库 AWS 中 在 Secret Manager 中保存私钥是个好主意吗 然后吃掉它
  • 调用存储过程 Mysql 时命令不同步

    我有两个存储过程 我需要对记录进行分页 比如选择下一个n记录 到选择所有匹配记录的第一个 CREATE PROCEDURE trans all IN varphone VARCHAR 15 BEGIN Select loans amt lo
  • 如何将 dicom 文件转换为 jpg

    我们如何使用java将dicom文件 dcm 转换为jpeg图像 这是我的代码 import java io File import java io IOException import org dcm4che2 tool dcm2jpg
  • Inno Setup 中的全屏背景图像

    如何在 Inno Setup 编译器中为我们的设置提供背景全屏图像 就像下面这张图一样 不要那样做 这违反了 Windows 设计准则 无论如何 如果必须的话 请使用旧版全屏安装程序模式WindowVisible yes指示然后通过修改 现
  • 在 JupyterLab 中扩展代码片段的键盘快捷键

    有谁知道如何创建一个快捷方式 将特定代码粘贴到选定的单元格或将片段扩展为代码块 例如 当按下类似的内容时 我想用有用的导入列表填充单元格Ctrl Shift M 这会将单元格内容扩展为 import numpy as np import p
  • 将多个 Bootstrap 菜单合并为一个移动设备菜单?

    我一直在看这个之前提出的问题 在折叠时合并多个 Bootstrap 3 导航栏菜单 正如您所见 它为这个问题提供了一个很好的解决方案这把小提琴 问题是对于我当前的布局来说 这个解决方案并不完美 它的显示方式如下 它适用于我想的其他场景 但在
  • Jw播放器视频分析,无需上传视频

    是否可以在不将内容上传到 jw 播放器的情况下进行视频分析 取决于您想在哪里查看分析 如果您想在您的JW 玩家帐户仪表板 您需要上传视频或添加外部内容 URL 请参见https support jwplayer com customer p
  • 在ios上混合音频

    我正在尝试混合音频源 这样就不会出现音频闪避 我试图解决的用例是在后台进行音频通话 同时播放音乐和 或收听应用程序音频 没有任何音频闪避 音频闪避是指音频稍微降低并失真以帮助收听另一个音频会话 我可以取消音频和音频混合 或 iOS 吗 我已
  • Rails:“权限被拒绝 - /tmp/cache/assets/development/sprockets/...”?

    当我运行 Rails 应用程序并使用浏览器导航到它们时 我收到错误rails Permission denied path to my rails app tmp cache assets development sprockets 37b
  • Android 无尽列表

    如何创建一个列表 当您到达列表末尾时我会收到通知 以便我可以加载更多项目 一种解决方案是实施OnScrollListener并进行更改 例如添加项目等 ListAdapter处于方便的状态onScroll method 下列ListActi
  • 从 Visual Studio 将文件添加到 WP7 独立存储?

    我正在开发一个 Windows Phone 7 应用程序 我将在其中使用 bing 地图显示您所在位置的 ATM 我有一个包含地址和 GPS 坐标的 xml 文件 但是如何从 Visual Studio 将此文件添加到我的程序中 如果我将
  • 关闭连接之前关闭阅读器

    您是否应该始终在关闭连接之前关闭 DataReader 还是直接关闭连接就可以了 通过关闭连接是否会有效地关闭读者 这是针对 c net 3 5 的 Thanks 除了明确你的意图之外 Microsoft 文档中还提到了这一点 使用 Dat
  • Chrome 上的 Angular2 Table Row 组件以单列显示

    使用中的版本 角2 0 1 角度 cli 1 0 0 beta 17 我有一个页面分为 3 个组件 页面大纲是一个具有自己的布局 包括行 的表格 其中一行包含行组件 在 IE 中 表格显示良好 在 Chrome 中 组件行中的所有数据都显示
  • ObjectContext 实例已被释放 - Winforms Entity Framework

    I am trying to solve this problem and did read content regarding this error but was unable to figure out a solution I am