J'ai essayé plusieurs méthodes d'utilisation des requêtes dynamiques LINQ - LINQKit et Bibliothèque de requêtes dynamiques LINQ. Je n'aime pas la seconde, car elle tue l'idée LINQ - pour pouvoir vérifier les requêtes au moment de la compilation. Et avec LINQKit, je n'ai pas trouvé un bon exemple pour mon scénario. Aussi, je n'aime pas l'utilisation excessive de la réflexion.Requêtes LINQ et dynamiques avec pagination et sans LINQ2SQL
Mon scénario est le suivant. J'ai un service web qui fait de la logique métier et de la logique DAL. L'application webforms est séparée. J'ai une page avec des cases à cocher pour chaque champ que l'utilisateur souhaite filtrer, et aussi une zone de texte pour entrer chaque valeur de filtre. Mon service Web a une méthode GetByFilter où je passe une certaine liste. QueryObject est une classe avec string: filedName, object: fieldValue.
Ensuite, mon webservice reçoit la liste des objets de requête et maintenant vient la grande question: comment le traduire en requête LINQ si le nombre de champs et les valeurs de filtre peuvent varier?
Ce qui est encore pire - je ne pas utiliser LINQ2SQL mais j'utilise une DAL personnalisée avec les dépôts qui peuvent retourner IQuery si nécessaire (comme celui-ci: http://msdn.microsoft.com/en-us/magazine/dd569757.aspx défiler au référentiel).
Je sais que je peux utiliser la pagination avec LINQ2SQL: var PagedData = query.Skip ((iPageNum - 1) * iPageSize) .Take (iPageSize); Comment puis-je obtenir les paramètres de requête dynamiques (et iPageNum et iPageSize) de LINQ à mon implémentation DAL sous-jacente pour exécuter ces requêtes d'une manière spécifique au fournisseur de données? Peut-être que je dois mettre en œuvre mon DAL en tant que fournisseur de données LINQ (je ne sais pas comment le faire)? Le problème est - je ne veux pas dépendre de LINQ2SQL (alors je pourrais simplement implémenter mes dépôts comme des wrappers pour LINQ2SQL) mais en même temps je veux avoir des capacités d'interrogation LINQ partout en dehors de mon DAL. C'est possible?
Merci, il se trouve, données personnalisés fournisseurs sont pas si compliqué que je le pensais. – JustAMartin