gpt4 book ai didi

c# - Entity Framework DbContext 被处置

转载 作者:行者123 更新时间:2023-11-30 22:21:18 25 4
gpt4 key购买 nike

我有一个使用 ObjectListView 的小程序可视化数据库信息。目前我正在尝试添加项目并不断获取 The operation cannot be completed because the DbContext has been disposed. 这突出显示了下面的 olvEntityTypes.AddObject(et); 行。

代码:

string typeName = tbTypeName.Text;
string desc = tbDesc.Text;

EntityTypes et;
using (FCERTSModelContainer db = new FCERTSModelContainer())
{
// Create and save new row for the EntityTypes table.
et = new EntityTypes { EntityTypeName = typeName, Description = desc };
db.EntityTypes.Add(et);
db.SaveChanges();

olvEntityTypes.AddObject(et);
}
  • 我怀疑 SaveChanges() 也可能正在关闭上下文,但尝试在保存更改之前添加对象仍然会引发相同的错误。
  • olvEntityTypes.AddObject(et); 放在 using block 之外也是失败的。
  • 如果我使用类似以下内容查询数据库,则不会抛出任何错误;

代码:

var query = from ent in db.EntityTypes
orderby ent.EntityTypeName
select ent;

olvEntityTypes.SetObjects(query);

所以我现在有点不知所措,不知道为什么会抛出错误以及如何修复它。

最佳答案

事实证明问题出在对象 ListView 的对象初始设置上。我正在使用这段代码;

var query = db.EntityTypes.OrderBy(eg => eg.EntityTypeName);
olvEntityTypes.SetObjects(query);

它工作正常,但在我的代码库中的不同 using block 中,因此是一个完全不同的 DbContext。

如果我将查询转换为列表,然后调用 SetObjects(),整个程序可以正常运行。

关于c# - Entity Framework DbContext 被处置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14473527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com