À lire avant la fermeture ou la fermeture: Cette copie presque exacte d'un previous question of mine existe dans le seul but de reformuler la question précédente à la portée Linq-To-Sql. Toutes les réponses contenues dans la question précédente sont valides pour la portée Linq, mais ne sont pas valides dans la portée Linq-To-SQL.Comment refactoriser plusieurs requêtes Linq-To-Sql similaires?
Supposons que j'ai les deux suivantes requêtes LINQ to SQL Je veux factoriser:
var someValue1 = 0;
var someValue2= 0;
var query1 = db.TableAs.Where(a => a.TableBs.Count() > someValue1)
.Take(10);
var query2 = db.TableAs.Where(a => a.TableBs.First().item1 == someValue2)
.Take(10);
Notez que seuls les Où changements de paramètres. Il existe un moyen de placer la requête dans une méthode et de passer le paramètre Where en argument?
Toutes les solutions publiées dans le previous question ont été essayées et ont échoué en exécution lorsque j'ai essayé d'énumérer le résultat.
L'exception était jeté: « surcharge non prise en charge utilisée pour l'opérateur de requête" Où »
Strangr, j'ai essayé les deux cas: Expression> c1 = t => vrai; Console.WriteLine (db.Table1.Where (c1) .Count()); Func c2 = t => true; Console.WriteLine (db.Table1.Where (c2) .Count()); ils m'ont donné les mêmes résultats, pas d'erreurs d'exécution. –