我们有两张桌子。使用名为 sessionID 的列调用 VirtualMachine ,将其作为第二个调用具有主键的会话的表的外键名为 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.
}
}