У меня есть функция, которая создает различные типы выражений в зависимости от значения переменной, переданной в.
Protected Function BuildSortPredicate(ByVal tableType As Object, ByRef expr As Expression)
Dim sortExpression As Expression
If tableType Is "Job" Then
sortExpression = Expression.Lambda(Of Func(Of Job, String))(expr)
ElseIf tableType Is "User" Then
sortExpression = Expression.Lambda(Of Func(Of User, Integer))(expr)
...
End If
Return sortExpression
End Function
Как мне избежать длинной структуры if / else (или case case)?
В идеале я ищу что-то вроде этого:
Protected Function BuildSortPredicate(ByVal tableType As Object, ByRef exprt As Expression)
Dim sortExpression As Expression
sortExpression = Expression.Lambda(Of Func(Of tableType, String))(expr)
Return sortExpression
End Function
Общая цель здесь - преобразовать выражение в соответствующий тип, чтобы я мог использовать его в своем запросе LINQ.