Impossible de convertir le type anonyme en arborescence de l'expression, car elle contient un champ qui sert à initialiser un autre champ
Mise à jour : novembre 2007
Cannot convert anonymous type to expression tree because it contains a field that is used in the initialization of another field
Le compilateur n'accepte pas la conversion d'un type anonyme en arborescence de l'expression lorsqu'une propriété du type anonyme est utilisée pour initialiser une autre propriété du type anonyme. Par exemple, dans le code suivant, Prop1 est déclaré dans la liste d'initialisation, puis utilisé comme valeur initiale pour 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 d'erreur : BC36548
Pour corriger cette erreur
Assignez la valeur initiale pour Prop1 à une variable locale. Assignez cette variable à Prop1 et à Prop2, comme indiqué dans le code suivant.
Sub Main() Dim temp = 2 ExpressionExample(Function() New With {.Prop1 = temp, .Prop2 = temp}) End Sub
Voir aussi
Tâches
Comment : utiliser des arborescences d'expression pour générer des requêtes dynamiques