Joe_DM
Joe_DM

Reputation: 1003

C# Issues Getting LINQ Query Results - Query runs in LINQpad but not in Visual Studio

I'm trying to populate a DataGridView with the results from the below LINQ Query however for some reason I am betting the error:

An unhandled exception of type 'System.NullReferenceException' occurred in mscorlib.dll

Additional information: Object reference not set to an instance of an object.

This is the query:

var QueryAverageTime = 
  from so in tpDB.tblServiceOrders
  join sologs in tpDB.tblSOLogs on so.SONumber equals sologs.SONumber

  where so.DateClosed >= new DateTime(2014, 01, 13)
  where so.DateClosed <= new DateTime(2014, 01, 17)
  where sologs.ElapsedHours != 0 || sologs.ElapsedMinutes != 0

  group new { sologs.ElapsedHours, sologs.ElapsedMinutes } by sologs.SONumber into g
  group new { hours = g.Sum(x => x.ElapsedHours), mins = g.Sum(x => x.ElapsedMinutes) } by "Totals" into t

  select new
  {
     Average = t.Average(x => (x.hours * 60) + x.mins),
     Count = t.Count()
  };
dgvTimeSLAAverage.DataSource = QueryAverageTime.ToList();

==EDIT== I'm not sure why this query has issues running when it works okay in LINQpad and returns results.

I have tried changing the

dgvTimeSLAAverage.DataSource = QueryAverageTime.ToList();

to

var test = QueryAverageTime.ToList();

however is still crashed at System.Data.Entity.Core.Query.

The query runs okay when I remove the Group By

group new { hours = g.Sum(x => x.ElapsedHours), mins = g.Sum(x => x.ElapsedMinutes) } by "Totals" into t

This is the exception thrown:

System.NullReferenceException: Object reference not set to an instance of an object.
at System.Data.Entity.Core.Query.PlanCompiler.NominalTypeEliminator.VisitPropertyOp(Op op, Node n, PropertyRef propertyRef, Boolean throwIfMissing)
at System.Data.Entity.Core.Query.PlanCompiler.NominalTypeEliminator.Visit(PropertyOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.PropertyOp.Accept[TResultType](BasicOpVisitorOfT`1 v, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitNode(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitChildren(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitDefault(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitScalarOpDefault(ScalarOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.Visit(AggregateOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.AggregateOp.Accept[TResultType](BasicOpVisitorOfT`1 v, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitNode(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitChildren(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitDefault(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitAncillaryOpDefault(AncillaryOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.Visit(VarDefOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.VarDefOp.Accept[TResultType](BasicOpVisitorOfT`1 v, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitNode(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitChildren(Node n)
at System.Data.Entity.Core.Query.PlanCompiler.NominalTypeEliminator.Visit(VarDefListOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.VarDefListOp.Accept[TResultType](BasicOpVisitorOfT`1 v, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitNode(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitChildren(Node n)
at System.Data.Entity.Core.Query.PlanCompiler.NominalTypeEliminator.Visit(GroupByIntoOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.GroupByIntoOp.Accept[TResultType](BasicOpVisitorOfT`1 v, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitNode(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitChildren(Node n)
at System.Data.Entity.Core.Query.PlanCompiler.NominalTypeEliminator.Visit(ProjectOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.ProjectOp.Accept[TResultType](BasicOpVisitorOfT`1 v, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitNode(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitChildren(Node n)
at System.Data.Entity.Core.Query.PlanCompiler.NominalTypeEliminator.Visit(ProjectOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.ProjectOp.Accept[TResultType](BasicOpVisitorOfT`1 v, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitNode(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitChildren(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitDefault(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitRelOpDefault(RelOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitApplyOp(ApplyBaseOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.Visit(OuterApplyOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.OuterApplyOp.Accept[TResultType](BasicOpVisitorOfT`1 v, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitNode(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitChildren(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitDefault(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitRelOpDefault(RelOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitApplyOp(ApplyBaseOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.Visit(OuterApplyOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.OuterApplyOp.Accept[TResultType](BasicOpVisitorOfT`1 v, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitNode(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitChildren(Node n)
at System.Data.Entity.Core.Query.PlanCompiler.NominalTypeEliminator.Visit(ProjectOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.ProjectOp.Accept[TResultType](BasicOpVisitorOfT`1 v, Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfT`1.VisitNode(Node n)
at System.Data.Entity.Core.Query.InternalTrees.BasicOpVisitorOfNode.VisitChildren(Node n)
at System.Data.Entity.Core.Query.PlanCompiler.NominalTypeEliminator.Visit(PhysicalProjectOp op, Node n)
at System.Data.Entity.Core.Query.InternalTrees.PhysicalProjectOp.Accept[TResultType](BasicOpVisitorOfT`1 v, Node n)
at System.Data.Entity.Core.Query.PlanCompiler.NominalTypeEliminator.Process()
at System.Data.Entity.Core.Query.PlanCompiler.NominalTypeEliminator.Process(PlanCompiler compilerState, StructuredTypeInfo structuredTypeInfo, Dictionary`2 tvfResultKeys)
at System.Data.Entity.Core.Query.PlanCompiler.PlanCompiler.Compile(List`1& providerCommands, ColumnMap& resultColumnMap, Int32& columnCount, Set`1& entitySets)
at System.Data.Entity.Core.Query.PlanCompiler.PlanCompiler.Compile(DbCommandTree ctree, List`1& providerCommands, ColumnMap& resultColumnMap, Int32& columnCount, Set`1& entitySets)
at System.Data.Entity.Core.EntityClient.Internal.EntityCommandDefinition..ctor(DbProviderFactory storeProviderFactory, DbCommandTree commandTree, DbInterceptionContext interceptionContext, IDbDependencyResolver resolver, BridgeDataReaderFactory bridgeDataReaderFactory, ColumnMapFactory columnMapFactory)
at System.Data.Entity.Core.EntityClient.Internal.EntityProviderServices.CreateCommandDefinition(DbProviderFactory storeProviderFactory, DbCommandTree commandTree, DbInterceptionContext interceptionContext, IDbDependencyResolver resolver)
at System.Data.Entity.Core.EntityClient.Internal.EntityProviderServices.CreateDbCommandDefinition(DbProviderManifest providerManifest, DbCommandTree commandTree, DbInterceptionContext interceptionContext)
at System.Data.Entity.Core.Common.DbProviderServices.CreateCommandDefinition(DbCommandTree commandTree, DbInterceptionContext interceptionContext)
at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlanFactory.CreateCommandDefinition(ObjectContext context, DbQueryCommandTree tree)
at System.Data.Entity.Core.Objects.Internal.ObjectQueryExecutionPlanFactory.Prepare(ObjectContext context, DbQueryCommandTree tree, Type elementType, MergeOption mergeOption, Boolean streaming, Span span, IEnumerable`1 compiledQueryParameters, AliasGenerator aliasGenerator)
at System.Data.Entity.Core.Objects.ELinq.ELinqQueryState.GetExecutionPlan(Nullable`1 forMergeOption)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClassb.<GetResults>b__a()
at System.Data.Entity.Core.Objects.ObjectContext.ExecuteInTransaction[T](Func`1 func, IDbExecutionStrategy executionStrategy, Boolean startLocalTransaction, Boolean releaseConnectionOnSuccess)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<>c__DisplayClassb.<GetResults>b__9()
at System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute[TResult](Func`1 operation)
at System.Data.Entity.Core.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Entity.Core.Objects.ObjectQuery`1.<System.Collections.Generic.IEnumerable<T>.GetEnumerator>b__0()
at System.Lazy`1.CreateValue()
at System.Lazy`1.LazyInitValue()
at System.Lazy`1.get_Value()
at System.Data.Entity.Internal.LazyEnumerator`1.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at TigerClaw.frmQuery.btnTimePerTicketQuery_Click(Object sender, EventArgs e) in c:\dev\TigerClaw\TigerClaw\frmQuery.cs:line 1866

Upvotes: 1

Views: 947

Answers (1)

Mike
Mike

Reputation: 1580

It's interesting that you're grouping on an aggregate. I have a feeling that it's working in LINQPad because it's using LinqToSQL whereas Visual Studio is using LinqToEF. LinqToEF may not have an appropriate translation yet, which might be the problem. This is my best guess anyway.

Upvotes: 1

Related Questions