Étant donné l'expression lambda ci-dessous où Type de province contient une propriété publique "byte CountryId" et un type de pays qui contient une propriété publique "byte Id". L'expression est ensuite utilisée par le fournisseur NHibernate Linq et a déclenché une exception. Lorsque j'ai inspecté la variable d'expression exp, j'ai découvert que les deux côtés de l'opérateur d'égalité ont été convertis en Int32.Compilation d'expressions lambda
{p => (Convert(p.CountryId) = Convert(value
(AddressToGo.Business.Default.AddressComponents+<>c__DisplayClass0).country.Id))}
Je ne peux pas comprendre pourquoi l'opérateur d'égalité pour les deux valeurs d'octets besoin de ces valeurs pour être converties en Int32 au préalable. J'ai écrit l'expression directement sans laisser le compilateur le faire pour moi. L'expression suivante est convertie par le fournisseur NHibernate Linq. Donc, il doit y avoir une raison pour que le compilateur produise l'expression avec la conversion de type. Des idées?
Nécessite un tag de langue. –