Não é possível converter tipo anônimo em árvore de expressão porque ele contém um campo que é usado na inicialização de outro campo
O compilador não aceita conversão de um anônimo em um árvore de expressão quando uma propriedade do tipo anônimo é usada para inicializar outra propriedade do tipo anônimo.Por exemplo, no código a seguir, Prop1 é declarado na lista de inicialização e, em seguida, usado como o valor inicial para Prop2.
Module M2
Sub ExpressionExample(Of T)(ByVal x As Expressions.Expression(Of Func(Of T)))
End Sub
Sub Main()
' The following line causes the error.
' ExpressionExample(Function() New With {.Prop1 = 2, .Prop2 = .Prop1})
End Sub
End Module
ID de erro: BC36548
Para corrigir este erro
Atribua o valor inicial para Prop1 a uma variável local.Atribuir a variável a ambos Prop1 e Prop2, conforme mostrado no seguinte código.
Sub Main() Dim temp = 2 ExpressionExample(Function() New With {.Prop1 = temp, .Prop2 = temp}) End Sub
Consulte também
Tarefas
Como: Usar árvores de Expressãosão para consultas Compilação dinâmico