2012-08-04 46 views
0

我有WPF .NET FW4應用程序與LINQ和SQL CE 4.0。隨機客戶的筆記本我recieving此錯誤:LINQ和異常已被調用的目標拋出

Exception has been thrown by the target of an invocation.

我已經知道,重要的是內部異常(含堆棧跟蹤):

Object reference not set to an instance of an object. at lambda_method(Closure)

代碼塊:

private void LoadCustomersDetail(CustomersView cw) 
    { 
     Persons customer = db.Persons.Where(c => c.Person_id == cw.Customer_id).FirstOrDefault(); 
     reg = new RegistrationWindow(db, customer, false); 
     reg.ShowDialog(); 
     if (reg.DialogResult.Value) 
     { 
      if (!onlyDebtors) 
       LoadCustomers(); 
      else 
       LoadDebtors(); 
     } 
    } 

堆棧跟蹤原始例外:

at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeType typeOwner) 
    at System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo method, Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeType typeOwner) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) 
    at System.Delegate.DynamicInvokeImpl(Object[] args) 
    at System.Data.Linq.CommonDataServices.GetKeyFromPredicate(MetaType type, Dictionary`2 keys, Expression mex, Expression vex) 
    at System.Data.Linq.CommonDataServices.GetKeysFromPredicate(MetaType type, Dictionary`2 keys, Expression expr) 
    at System.Data.Linq.CommonDataServices.GetKeyValues(MetaType type, LambdaExpression predicate) 
    at System.Data.Linq.CommonDataServices.GetCachedObject(Expression query) 
    at System.Data.Linq.CommonDataServices.GetCachedObject(Expression query) 
    at System.Data.Linq.SqlClient.SqlProvider.GetCachedResult(Expression query) 
    at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) 
    at System.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute[S](Expression expression) 
    at System.Linq.Queryable.FirstOrDefault[TSource](IQueryable`1 source) 
    at ProjectName.Core.ViewWindow.LoadCustomersDetail(CustomersView cw) 
    at ProjectName.Core.ViewWindow.dataGridCustomersList_MouseDoubleClick(Object sender, MouseButtonEventArgs e) 
    at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) 
    at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) 
    at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) 
    at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) 
    at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) 
    at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e) 
    at System.Windows.Controls.Control.OnMouseDoubleClick(MouseButtonEventArgs e) 
    at System.Windows.Controls.Control.HandleDoubleClick(Object sender, MouseButtonEventArgs e) 
    at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) 
    at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) 
    at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) 
    at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) 
    at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) 
    at System.Windows.UIElement.OnMouseDownThunk(Object sender, MouseButtonEventArgs e) 
    at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget) 
    at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) 
    at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) 
    at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) 
    at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) 
    at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args) 
    at System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted) 
    at System.Windows.Input.InputManager.ProcessStagingArea() 
    at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) 
    at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) 
    at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) 
    at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 
    at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 
    at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) 
    at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) 
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) 
    at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler) 
+0

null客戶將是我第一次測試 - 您的RegistrationWindow構造函數處理該場景嗎? – 2012-08-04 14:59:09

回答

1

異常似乎涉及Where-表達式,因此ccw爲空。我會建議在方法開始時進行參數檢查(如果cw == null,則拋出ArgumentNullException)。 還要確保Persons集合不包含空值(如果甚至可能的話)。

+0

我試圖將cw設置爲null,現在原始異常是Object reference not set ...,但是具有不同的堆棧跟蹤,並且它在RegistrationWindow構造函數中的後續步驟中進行了哈希操作。如果您檢查堆棧跟蹤,您將看到它在FirstOrDefault()方法調用時失敗。 – Petree 2012-08-04 15:22:08

+0

對不起,我試過這樣的:人員customer = db.Persons.Where(c => c.Person_id == NULL).FirstOrDefault();它不一樣:cw = null; Persons customer = db.Persons.Where(c => c.Person_id == cw.Customer_id).FirstOrDefault(); – Petree 2012-08-04 15:28:21

1

您的錯誤信息cw.Customer_id。您的cwnull

+0

謝謝你,你也是對的,但是H.B.快一點。 – Petree 2012-08-04 15:30:55

相關問題