- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我刚刚发现,当我尝试在我的 DbContext 中的 DbSet 上使用 .Add()
方法时,出现以下异常:
System.InvalidOperationException : The operation cannot be completed because the DbContext has been disposed.
现在这个方法确实使用了另外两种方法(CheckForBleKeyInDb
和 CheckForMpSwitchInDb
),它们使用它们自己的using(_db = new BeheerContext())
但是由于某种原因这不会产生任何错误。
测试变量不会产生任何异常,可能是因为它们实际上并没有连接到数据库,至少这是我的猜测。
我想知道究竟是什么导致了这个异常,我该如何防止它。
最佳答案
不要在你的类中使用上下文作为字段,然后所有方法共享它并在它们的 using 语句结束时处理它。
Now it is true that this method uses two other methods (
CheckForBleKeyInDb
andCheckForMpSwitchInDb
) which use their ownusing(_db = new BeheerContext())
but this doesn't generate any errors for some reason.
因此,在第一次调用这些方法后,您的上下文也会被释放。
而是在方法中创建它们(var _db = ...
):
using(var _db = new BeheerContext())
{
//...
}
您的测试变量不会产生异常,因为它们不会从表中进行选择。例如,如果你使用
,你会得到同样的异常var test1 = _db.BleKeys.First();
关于c# - DbContext 获取在使用区域内处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45738018/
我有数百个位置的列表,只想显示当前屏幕上这些位置的 MKPinAnnotation。屏幕从 2 英里半径内的用户当前位置开始。当然,用户可以滚动和缩放屏幕。现在,我等待 map 更新事件,然后循环遍历
我试过检查 CGRect: CGFloat imageX1 = imageView.frame.origin.x; CGFloat imageY1 = imageView.frame.origin
我是一名优秀的程序员,十分优秀!