2012-08-04 47 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

相关问题