Hello
We have some "object must implement iconvertible" errors with the code below.
We can notice that each individual expression is OK. But when they are used in the inline boolean test ( ? : ) it's not OK except when we reach 2 true data base fields.
private IList<StockForecastProjection> GetDeliveryForecast()
{
LinqMetaData metaData = CreateLinqMetaData();
var today = DateTime.Today;
var query =
from saleDeliveryDetail in metaData.SaleDeliveryDetail
join saleDelivery in metaData.SaleDelivery on saleDeliveryDetail.FkSaleDeliveryId equals saleDelivery.Id
join saleOrderDetail in metaData.SaleOrderDetail on saleDeliveryDetail.FkSaleOrderDetailId equals saleOrderDetail.Id
join item in metaData.Item on saleOrderDetail.FkItemId equals item.Id
where saleDelivery.FkSaleDeliveryStatusId == (long)SaleDeliveryStatusEnumeration.InProgress
|| saleDelivery.FkSaleDeliveryStatusId == (long)SaleDeliveryStatusEnumeration.Ready
select new StockForecastProjection
{
ItemId = saleOrderDetail.FkItemId.Value,
Quantity = saleDeliveryDetail.Quantity,
//MovementDate = DatabaseFunctions.IfNull(saleDelivery.DeliveryDate, DatabaseFunctions.GetCurrentDate()), //KO
//MovementDate = (saleDelivery.DeliveryDate.HasValue ? saleDelivery.DeliveryDate.Value : DatabaseFunctions.GetCurrentDate()), //KO
//MovementDate = DatabaseFunctions.IfNull(saleDelivery.DeliveryDate, today), //KO
MovementDate = (saleDelivery.AvailabilityDate.HasValue ? saleDelivery.AvailabilityDate.Value : today), //KO
//MovementDate = (saleDelivery.DeliveryDate.HasValue ? saleDelivery.DeliveryDate.Value : saleDelivery.AvailabilityDate.Value), //OK
//MovementDate = today, //OK
//MovementDate = DatabaseFunctions.GetCurrentDate(), //OK
//MovementDate = saleDelivery.DeliveryDate.Value, //OK
OrderReference = saleDelivery.DeliveryNumber
};
return query.ToList<StockForecastProjection>();
}
We are using
* LLBLGen Pro version : 3.5 Final (January 17th, 2013)
* Template group + .NET version : Adapter, .NET 3.5
* Database version : MySql 5.0.89
And this is the stack
L'exception System.InvalidCastException n'a pas été gérée par le code utilisateur
Message="L'objet doit implémenter IConvertible."
Source="Bejot.Common.Technical"
StackTrace:
à Bejot.Common.Technical.ServiceCall.ServiceCallInterceptorBase.CallService(IInvocation invocation) dans c:\SVN\DEV\Bejot.Common\trunk\Bejot.Common.Technical\ServiceCall\ServiceCallInterceptorBase.cs:ligne 72
à Bejot.Common.Technical.ServiceCall.ServiceCallInterceptorBase.<>c__DisplayClass1.<PerformProceed>b__0() dans c:\SVN\DEV\Bejot.Common\trunk\Bejot.Common.Technical\ServiceCall\ServiceCallInterceptorBase.cs:ligne 54
à Bejot.Common.Technical.Cache.CacheInterceptor.Execute(IInvocation invocation, ICacheManager cacheManager, ToBeCalledMethod toBeCalledMethod) dans c:\SVN\DEV\Bejot.Common\trunk\Bejot.Common.Technical\Cache\CacheInterceptor.cs:ligne 79
à Bejot.Common.Technical.ServiceCall.ServiceCallInterceptorBase.PerformProceed(IInvocation invocation) dans c:\SVN\DEV\Bejot.Common\trunk\Bejot.Common.Technical\ServiceCall\ServiceCallInterceptorBase.cs:ligne 53
à Castle.Core.Interceptor.StandardInterceptor.Intercept(IInvocation invocation)
à Castle.DynamicProxy.AbstractInvocation.Proceed()
à Castle.Proxies.IStockServiceProxy.ExportStockForecast()
à Bejot.Erp.Common.Client.ViewModel.MainViewModelBase.ShowForecastStocks(String printModeAsString) dans c:\SVN\DEV\Bejot.ERP.Common\trunk\Bejot.Erp.Common.Client\ViewModel\Main\MainViewModelBase.cs:ligne 551
à Bejot.Erp.Common.Client.ViewModel.MainViewModelBase.<get_ShowForecastStocksCommand>b__1d(Object parameter) dans c:\SVN\DEV\Bejot.ERP.Common\trunk\Bejot.Erp.Common.Client\ViewModel\Main\MainViewModelBase.cs:ligne 547
à Bejot.Common.Client.Core.RelayCommand.Execute(Object parameter) dans c:\SVN\DEV\Bejot.Common\trunk\Bejot.Common.Client\Core\Command\RelayCommand.cs:ligne 64
à MS.Internal.Commands.CommandHelpers.CriticalExecuteCommandSource(ICommandSource commandSource, Boolean userInitiated)
à System.Windows.Documents.Hyperlink.OnClick()
à System.Windows.Documents.Hyperlink.DispatchNavigation(Object sender)
à System.Windows.Documents.Hyperlink.DoUserInitiatedNavigation(Object sender)
à System.Windows.Documents.Hyperlink.OnMouseLeftButtonUp(Object sender, MouseButtonEventArgs e)
à System.Windows.Documents.Hyperlink.OnMouseLeftButtonUp(MouseButtonEventArgs e)
à System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
à System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
à System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
à System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
à System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
à System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
à System.Windows.UIElement.CrackMouseButtonEventAndReRaiseEvent(DependencyObject sender, MouseButtonEventArgs e)
à System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
à System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
à System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
à System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
à System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
à System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
à System.Windows.ContentElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
à System.Windows.Input.InputManager.ProcessStagingArea()
à System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
à System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
à System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
à System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
à System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
à MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
à MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
à System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter)
à System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler)
InnerException: