2
我有一个小程序,使用ObjectListView可视化数据库信息。目前我正在尝试添加项目并继续获取The operation cannot be completed because the DbContext has been disposed.
这是突出显示olvEntityTypes.AddObject(et);
下面的一行。实体框架DbContext得到处置
代码:
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
块之外也是一种失败。 - 如果我用下面的东西查询数据库,不会引发任何错误;
代码:
var query = from ent in db.EntityTypes
orderby ent.EntityTypeName
select ent;
olvEntityTypes.SetObjects(query);
所以我在一个小的损失的现在,为什么这是投掷的错误,以及如何解决它。
它只是一个ObjectListView。除了映射列之外,我没有触及它,这些都是通过GUI /设计器完成的。我不知道为什么它甚至需要用于AddObject的DbContext,但不用于SetObject? – Trent