我们有拖车桌。一个调用VirtualMachine,其列名为sessionID ,它是第二个调用session的表的外键,主键名为Id ( null-able int
)。
我们使用linq to 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.
}
}