J'essaie d'utiliser la linq suivant sur SQL dans mon code: L'erreur se produit sur la deuxième ligne de jointure (3ème ligne dans toute la requête ci-dessus) - J'avais l'habitude de Demandez-le de sorte que cela vient de rejoindre S.Id et Pop.accountid et qui a fonctionné parfait, mais maintenant j'ai introduit une autre jointure Criticieria (la syncno), je reçois l'erreur suivante: P> "Le type d'une des expressions dans
La clause de jointure est incorrecte. Taper
L'inférence a échoué dans l'appel à
'Groupjoin' " P>
BlockQuote> Des idées? Certaines notes: p> 1: "La variable" Syncno "est longue, de même que la valeur dans la DB (Bigint). La valeur dans la DB est nullable, donc j'ai aussi essayé "longtemps?" Comme le type de variable p> 2: AccsandPurchase est une classe personnalisée que j'ai faite, comme vous pouvez probablement deviner p> merci p> p> p>
3 Réponses :
Essayez de spécifier les mêmes noms de clés de jointure E.g.
join pop in dc.POPTransactions on new { Key1 = s.ID, Key2 = syncNo } equals new {Key1 = pop.AccountID, Key2 = pop.SyncNo }
@PNP Pas sûr de LINQ vers SQL, cependant EF est suffisamment intelligent pour générer une jointure à gauche ou intérieure précise
de la MSDN DOCS:
Type Inference sur les touches composites
dépend strong> sur les noms forts> des propriétés des clés et de la commande forte> dans laquelle ils se produisent. Si les propriétés des séquences source ne possèdent pas les mêmes noms, vous devez attribuer de nouveaux noms dans les clés. Par exemple, si la table des commandes et la table de commandeDétails ont utilisé des noms différents pour leurs colonnes, vous pouvez créer des touches composites en attribuant des noms identiques dans les types anonymes: p> blockQuote> xxx pré> http://msdn.microsoft.com /en-us/library/bb907099.aspx p> p>
Ce problème se produit souvent lorsque vous comparez les propriétés de dans cet exemple, si t.entitytype est court fort>, qui est comparé à un entier "Le type d'une des expressions de la clause de jointure est incorrect. Type Inference a échoué dans l'appel à" Groupjoin "" P>
blockQuote> p>