2つのテーブルがあります。1つはsessionIDという列でVirtualMachineを呼び出し、 Id (null可能)という主キーを持つセッション を呼び出す2番目のテーブルへの外部キーです。int
linqを使用してsqlを実行し、VirtualMachine.sessionIDを更新しようとするとnull
、次のエラーが発生しました。
「オブジェクトの現在の状態が原因で、操作が無効です」
私たちのコード:
List<VirtualMachine> currentVms = _context.getAllVMs();
foreach (VirtualMachine vm in currentVms)
{
if (vm.sessionID != null)
{
//if no change the session status
Session ChangeStatus = _context.getSessionByID((int)vm.sessionID);
ChangeStatus.status = (int)sessionStatus.closed;
_context.updateSesion(ChangeStatus);
string SessionKey = vm.Session.sessionNumber;
// change the session id to null
VirtualMachine toUpdate = new VirtualMachine();
toUpdate.ID = vm.ID;
toUpdate.IP = vm.IP;
toUpdate.sessionID = null;
_context.updateVM(toUpdate);///here we get the exception.
}
}