CodeConverter
CodeConverter copied to clipboard
VB -> C#: Query syntax - NullReferenceException in join clause
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