CodeConverter icon indicating copy to clipboard operation
CodeConverter copied to clipboard

VB -> C#: Query syntax - NullReferenceException in join clause

Open CardenInsurance opened this issue 2 years ago • 0 comments

VB.Net input code

Public Shared Function Get_List_of_States(Reinsurance_Year As Int16, Optional Agent_Entity_ID As Integer = 0) As List(Of State)
        Using db As New PRIMEEntities

            Dim results As List(Of State) = (From p In db.Policies
                                             Join st In db.ADM_State_2018 On p.Location_State_Code Equals st.State_Code
                                             Group Join agent In db.Entities On agent.Entity_ID Equals p.Agent_Entity_ID Into Group
                                             From agent In Group.DefaultIfEmpty()
                                             Where p.Reinsurance_Year = Reinsurance_Year And (Agent_Entity_ID = 0 Or agent.Entity_ID = Agent_Entity_ID)
                                             Order By st.State_Name
                                             Select New State With {
                               .State_Code = st.State_Code,
                               .State_Name = st.State_Name,
                               .State_Abbreviation = st.State_Abbreviation
                               }
                                             Distinct).ToList



            Return results
        End Using

    End Function

Erroneous output

public static List<State> Get_List_of_States(short Reinsurance_Year, int Agent_Entity_ID = 0)
        {
            using (var db = new PRIMEEntities())
            {

                var results = default
#error Cannot convert QueryExpressionSyntax - see comment for details
      /* Cannot convert QueryExpressionSyntax, System.NullReferenceException: Object reference not set to an instance of an object.
          at ICSharpCode.CodeConverter.CSharp.QueryConverter.<ConvertJoinClauseAsync>b__36_1(AggregationRangeVariableSyntax a)
          at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
          at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)
          at ICSharpCode.CodeConverter.CSharp.QueryConverter.<ConvertJoinClauseAsync>d__36.MoveNext()
       --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
          at ICSharpCode.CodeConverter.Common.EnumerableExtensions.<YieldAsync>d__6`1.MoveNext()
       --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
          at ICSharpCode.CodeConverter.CSharp.QueryConverter.<ConvertQueryBodyClauseAsync>d__26.MoveNext()
       --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
          at ICSharpCode.CodeConverter.CSharp.QueryConverter.<GetQuerySegmentsAsync>d__8.MoveNext()
       --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
          at ICSharpCode.CodeConverter.CSharp.QueryConverter.<ConvertClausesAsync>d__7.MoveNext()
       --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
          at ICSharpCode.CodeConverter.CSharp.ExpressionNodeVisitor.<VisitQueryExpression>d__70.MoveNext()
       --- End of stack trace from previous location where exception was thrown ---
          at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
          at ICSharpCode.CodeConverter.CSharp.CommentConvertingVisitorWrapper.<ConvertHandledAsync>d__8`1.MoveNext()

       Input:
       From p In db.Policies
                                                    Join st In db.ADM_State_2018 On p.Location_State_Code Equals st.State_Code
                                                    Group Join agent In db.Entities On agent.Entity_ID Equals p.Agent_Entity_ID Into Group
                                                    From agent In Group.DefaultIfEmpty()
                                                    Where p.Reinsurance_Year = Reinsurance_Year And (Agent_Entity_ID = 0 Or agent.Entity_ID = Agent_Entity_ID)
                                                    Order By st.State_Name
                                                    Select New State With {
                                      .State_Code = st.State_Code,
                                      .State_Name = st.State_Name,
                                      .State_Abbreviation = st.State_Abbreviation
                                      }
                                                    Distinct
        */
        .ToList();



                return results;
            }

        }

Details

  • Product in use: e.g. VS extension
  • Version in use: 9.0.3.0

CardenInsurance avatar Aug 04 '22 16:08 CardenInsurance