我想在最初使用以下代码从数据库加载数据时过滤我的数据:
_dbContext.PlannedWorkOrder.Where(order => order.ProjectID == _projectid).Load();
plannedWorkOrderBindingSource.DataSource = _dbContext.PlannedWorkOrder.Local.ToBindingList();
但是,当我想保存更改时,我收到以下错误:
无法访问' ResourceIds'已处置物品的财产'预约'。
如果我在没有过滤的情况下加载数据,那么一切都按预期工作:
_dbContext.PlannedWorkOrder.Load();
plannedWorkOrderBindingSource.DataSource = _dbContext.PlannedWorkOrder.Local.ToBindingList();
这可能是什么问题?
从调试中我发现一切都发生在schedulerControl1.EndUpdate()方法之后,但看起来错误来自内部代码。可能没有真正指责它,但它似乎与它有关懒加载......有什么想法吗?
这与devexpress btw的xtrascheduler协同工作。
堆栈追踪:
konum: DevExpress.XtraScheduler.Native.Exceptions.ThrowObjectDisposedException(String objectName, String propName)
konum: DevExpress.XtraScheduler.Appointment.get_ResourceIds()
konum: DevExpress.XtraScheduler.Native.AppointmentChangeHelper.CanChangeAppointment(AppointmentOperationHelper operationHelper, Appointment sourceAppointment, Appointment editedAppointment, Boolean copy)
konum: DevExpress.XtraScheduler.Native.AppointmentChangeHelper.ValidateOperation(Boolean copy)
konum: DevExpress.XtraScheduler.Native.AppointmentChangeHelper.PerformDragDrop(ISelectableIntervalViewInfo layoutViewInfo, DragDropEffects effect, Boolean isDrop)
konum: DevExpress.XtraScheduler.Native.AppointmentChangeHelper.CommitDrag(DragDropEffects dropEffect, Boolean skipRaiseDropEvent)
konum: DevExpress.XtraScheduler.Native.AppointmentInternalDragAndDropMouseHandlerState.StartDragCore(SchedulerDragData data, ISchedulerHitInfo startHitInfo)
konum: DevExpress.XtraScheduler.Native.AppointmentInternalDragMouseHandlerStateBase.Start()
konum: DevExpress.Utils.MouseHandler.SwitchStateCore(MouseHandlerState newState, Point mousePosition)
konum: DevExpress.XtraScheduler.Native.SchedulerMouseHandler.SwitchToInternalDragState(Point mousePosition, Appointment appointment, ISchedulerHitInfo layoutHitInfo, ISchedulerHitInfo prevLayoutHitInfo)
konum: DevExpress.XtraScheduler.Native.AppointmentMouseDownState.OnMouseMove(MouseEventArgs e)
konum: DevExpress.Utils.MouseHandler.HandleMouseMove(MouseEventArgs e)
konum: DevExpress.Utils.MouseHandler.OnMouseMove(MouseEventArgs e)
konum: DevExpress.Services.Implementation.MouseHandlerService.OnMouseMove(MouseEventArgs e)
konum: DevExpress.XtraScheduler.SchedulerControl.OnMouseMove(MouseEventArgs e)
konum: System.Windows.Forms.Control.WmMouseMove(Message& m)
konum: System.Windows.Forms.Control.WndProc(Message& m)
konum: DevExpress.XtraScheduler.SchedulerControl.WndProc(Message& m)
konum: System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
konum: System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
konum: System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
konum: System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
konum: System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
konum: System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
konum: System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
konum: System.Windows.Forms.Application.RunDialog(Form form)
konum: System.Windows.Forms.Form.ShowDialog(IWin32Window owner)
konum: System.Windows.Forms.Form.ShowDialog()
konum: Terminator.Forms.FormMainMenu.tileItemProjects_ItemClick(Object sender, TileItemEventArgs e) D:\TErm_Workspace\Terminator\Terminator\Forms\FormMainMenu.cs içinde: satır 24
konum: DevExpress.XtraEditors.TileItem.RaiseItemClick()
konum: DevExpress.XtraEditors.TileItem.OnItemClick()
konum: DevExpress.XtraEditors.TileControlHandler.ProceedPressInItem(MouseEventArgs e, TileControlHitInfo pressInfo)
konum: DevExpress.XtraEditors.TileControlHandler.ProceedPressInItem(MouseEventArgs e)
konum: DevExpress.XtraEditors.TileControlHandler.OnMouseUp(MouseEventArgs e)
konum: DevExpress.XtraEditors.TileControl.OnMouseUp(MouseEventArgs e)
konum: System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
konum: System.Windows.Forms.Control.WndProc(Message& m)
konum: DevExpress.XtraEditors.TileControl.WndProc(Message& m)
konum: System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
konum: System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
konum: System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
konum: System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
konum: System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
konum: System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
konum: System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
konum: System.Windows.Forms.Application.Run(Form mainForm)
konum: Terminator.Program.Main() D:\TErm_Workspace\Terminator\Terminator\Program.cs içinde: satır 23
konum: System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
konum: System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
konum: Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
konum: System.Threading.ThreadHelper.ThreadStart_Context(Object state)
konum: System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
konum: System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
konum: System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
konum: System.Threading.ThreadHelper.ThreadStart()