Je tente de générer une requête LINQ au moment de l'exécution afin que seules certaines propriétés soient sélectionnées. J'ai pensé à quelque chose dans le sens de pouvoir créer une requête en ajoutant des appels .Select() supplémentaires à ma requête ou en utilisant les extensions LINQ dynamiques pour passer une chaîne de colonnes (je voudrais rester loin d'une requête construite en chaîne) . Cependant, mes tentatives actuelles pour trouver une solution n'ont pas fonctionné.Création des propriétés à sélectionner avec LINQ To Object
Répondre
Jetez un coup d'œil à Dynamic LINQ. Ce peut être juste ce que tu voulais.
Vous devez regarder dans les expressions linq. Voici un petit exemple qui devrait fonctionner pour sélectionner une seule propriété, sélectionner plus que cela devient plus difficile, mais est généralement faisable si vous définissez un type avec les propriétés que vous sélectionnez (par exemple, n'utilisez pas les types anonymes dans les requêtes génèrent).
using System.Linq.Expressions;
...
IQueryable<T> query = someQuery;
Expression expression = query.Expression;
ParameterExpression obj = Expression.Parameter(query.ElementType, "obj");
MemberExpression property = Expression.PropertyOrField(obj, propertyName);
Expression<Func<T,bool>> lambda = Expression.Lambda<Func<T,bool>>(property, obj);
query = query.Where(lambda);
Au moins, thats l'idée générale
Vous avez peut-être raison, il est temps que je plonge dans le fonctionnement des arborescences LINQ Expression. – jwarzech
Comme Justin a commenté, votre difficulté sera de trouver un type de retour. L'avantage de LINQ est que vous avez des entités fortement typées avec lesquelles travailler. Si cela ne fonctionne pas à votre avantage, ou si vous faites beaucoup de travail à contre-courant, il y a probablement une meilleure solution.
- 1. Meilleure requête LINQ-to-XML pour sélectionner des noeuds en fonction des propriétés des noeuds descendants?
- 2. LINQ to SQL: propriétés des propriétés qui peuvent être null
- 3. LINQ to SQL - Sélectionner une valeur constante
- 4. Propriétés d'alias dans LINQ to SQL
- 5. linq to xml: comment sélectionner la valeur des éléments
- 6. Linq to Entities et propriétés concaténées
- 7. php Object to String
- 8. Création d'un LINQ sélectionner à partir de plusieurs tables
- 9. LINQ to NHibernate: .StartsWith sur plusieurs propriétés
- 10. Tout sélectionner pas dans l'exigence, LINQ to SQL
- 11. C++ Object Graph to C#
- 12. Linq to SQL: .FirstOrDefault() non applicable pour sélectionner un nouveau {...}
- 13. Création d'expressions Linq avec des variables
- 14. Byte Array to Image object
- 15. NOLOCK avec Linq to SQL
- 16. LinQ To SQL avec UPDLOCK
- 17. LINQ to Objects - liaison à un ListView
- 18. DataTable to List <object>
- 19. Linq to SQL Héritage Question
- 20. Comment mapper des tables jointes à une liste <Object> avec LINQ?
- 21. Aide à la requête LINQ (LINQ to SQL)
- 22. Réutilisation de code avec Linq-to-Sql - Création de tables de correspondance 'génériques'
- 23. WIX: Comment sélectionner Fonctionnalités en fonction des propriétés
- 24. LINQ to SQL Particularités
- 25. LINQ to SQL désireux de chargement avec des conditions
- 26. Paginé des résultats de recherche avec LINQ to SQL
- 27. LINQ To XML Syntaxe pour l'élément XML avec des attributs
- 28. LINQ to SQL peut-il remplir des propriétés non marquées ColumnAttribute lors de l'utilisation de DataContext.ExecuteQuery?
- 29. Linq to Sql avec ADO.Net Data Services
- 30. Tables de consultation avec Linq-to-Sql
Pouvez-vous élaborer un peu? Essayez-vous de laisser l'utilisateur passer dans les champs qu'il veut sélectionner? –
L'utilisateur sélectionne exactement les informations qu'il souhaite. – jwarzech
Est-ce que LINQ est une exigence? Je pense que ne pas savoir quels champs vos objets vont avoir rendrait le codage contre les résultats de la requête difficile. Peut-être qu'un retour aux jours de jeux de données serait mieux adapté? –