J'ai deux tables (TABLE1, TABLE2 - unique je sais) qui ont une relation 1-à-plusieurs respectivement et une clé étrangère entre les colonnes ID des deux tables.Comment utiliser le générateur de prédicat avec linq2sql et opérateur
En utilisant linq2sql Je suis en train de sélectionner toutes les entrées TABLE1 telles que leur valeurs TABLEAU2 correspondant contient au moins 1 élément dans la liste que je transmets.
Voici quelques exemples de code que j'utilisais dans LINQPad (programme impressionnant) pour le tester je suis cependant obtenir l'erreur NotSupportedException: surcharge non prise en charge utilisée pour l'opérateur de requête « Tout ».
long[] items = { 3, 5, 8 };
var predicate = PredicateBuilder.False<TABLE2>();
foreach (long i in items)
{
long t = i;
predicate = predicate.Or(att => att.ID == t);
}
//TABLE2.Where(predicate).Dump(); //works like a charm
IQueryable query =
from t1 in TABLE1
where t1.TABLE2.AsQueryable().Any(predicate) //problem with this line
select a;
query.Dump();
MISE À JOUR
Lorsque vous utilisez LinqKit dans LINQPad ajouter la référence à LinqKit.dll, décocher Inclure PredicateBuilder puis ajoutez également LinqKit sous onglet Importations supplémentaires Namespace.
J'ai trouvé une question similaire ici http://stackoverflow.com/questions/2522079/generated-sql-with-predicatebuilder-linqpad-and-operator-any. N'a pas testé dans VS, mais il semble que cela puisse être un problème avec la façon dont je l'écris dans LINQPad. – David