句柄未初始化错误

时间:2011-08-18 09:52:43

标签: .net entity-framework

我有一个wpf应用程序,我正在使用MVVM。我已将datagrid直接绑定到viewmodel以进行更新,添加和删除。这些操作没有按钮。这一切都通过绑定属性很好。除了一个问题。

如果用户使用datagrid中未提交的更改关闭视图,我会尝试在ViewModel的析构函数中捕获它。然后调用ADD或更新方法。但是当

Context.SaveChanges(); 

被称为我得到一个“句柄未初始化”内部异常。

Datacontext不是Null。我在ViewModels基类中创建了datacontext,并在viewmodels基类析构函数中关闭它。单步执行代码显示尚未调用基类析构函数。

下面是我的堆栈跟踪。

 at System.Data.Mapping.Update.Internal.UpdateTranslator.Update(IEntityStateManager stateManager, IEntityAdapter adapter)
 at System.Data.EntityClient.EntityAdapter.Update(IEntityStateManager entityCache)
 at System.Data.Objects.ObjectContext.SaveChanges(SaveOptions options)
 at System.Data.Objects.ObjectContext.SaveChanges()
 at InspectorGeneral.ViewModel.VMItemList.Update(ItemsList obj)
 at InspectorGeneral.ViewModel.VMItemList.Modify(ItemsList obj)
 at InspectorGeneral.ViewModel.VMItemList.set_SelectedListItem(ItemsList value)
 at InspectorGeneral.ViewModel.VMItemList.Finalize()

任何人都可以指出我正确的方向为什么这行代码失败。

问候

1 个答案:

答案 0 :(得分:3)

我尝试在Finalize中执行数据库调用,并且也遇到了同样的错误。

Finalize中取出是唯一的选择。