J'implémente une fonctionnalité de recherche pour une application qui utilise le framework d'entité. Plusieurs champs facultatifs permettent de rechercher une table/vue de base de données particulière. Quelle est la meilleure façon d'implémenter une telle recherche avec EF? Procédure stockée? Ou peut-il être fait (de façon réaliste) en utilisant Linq seulement?Entity Framework - SQL dynamique
1
A
Répondre
2
Vous devriez être en mesure de le faire dans LINQ assez facilement. Rappelez-vous toujours que les requêtes LINQ sont chaînables:
var query = (from p in products
select p);
if(field1 != null)
{
query = (from p in query
where p.Field1 = field1
select p);
}
if(field2 != null)
{
query = (from p in query
where p.Field2 = field2
select p);
}
foreach(Product p in query)
{
// ...
}
1
Ce que Loren dit fonctionnera (+1). Ou utilisez Microsoft Dynamic LINQ. Cela fonctionne bien avec L2E.
0
Vous pouvez jeter un oeil à this article sur la génération dynamique d'objets d'expression lambda pour le faire.
3
Un modèle commun pour le traitement des paramètres de recherche en option est de faire quelque chose comme ceci:
string p = null;
var q = from o in dataContext.Products
where ((o.Name == p) || (p == null))
select o;
Questions connexes
- 1. Entity Framework dynamique où l'article
- 2. ADO.Net Entity Framework et ordre dynamique par
- 3. Bug dans notre SQL ou Entity Framework?
- 4. convertir une requête SQL pour Entity Framework
- 5. Sql Server (Entity Framework): created_at, updated_at Colonnes
- 6. Entity Framework T-Sql "ayant" Equivalent
- 7. Entity Framework + Sql Anywhere 11 + Procédures stockées
- 8. Linq to SQL et Entity Framework Diffrences?
- 9. Entity Framework XML Query
- 10. GetDate() using Entity Framework
- 11. DataContext.Log équivalent dans Entity Framework?
- 12. Entity Framework + POCO
- 13. Entity Framework IQueryable
- 14. Sauvegarde et restauration via Entity Framework
- 15. Didacticiels ADO.NET Entity Framework
- 16. ADO.Net Entity Framework/Linq
- 17. ReferentialConstraint dans Entity Framework
- 18. Entity Framework Mapping Question
- 19. Vues et Entity Framework
- 20. ADO.Net Entity Framework Relations
- 21. Entity Framework and Sorting
- 22. Entity Framework and Encapsulation
- 23. Entity Framework - L'héritage
- 24. SqlMethods.DateDiffMonth dans Entity Framework
- 25. Audit dans Entity Framework
- 26. Entity Framework et AssociateWith
- 27. QueryObject Include Entity Framework
- 28. Entity Framework Mapping
- 29. Entity Framework get CurrentContext
- 30. Entity Framework et Oracle
Est-ce que la définition originale de « requête » cause « select * des produits » à exécuter? – Jeremy
Les requêtes LINQ n ° ne sont pas énumérées (c'est-à-dire que les résultats ne sont pas extraits de la base de données) jusqu'au dernier moment possible. Les appels ne font que s'accumuler, puis lorsque vous avez besoin d'accéder à un élément spécifique du résultat (ou du compte, etc.), l'ensemble de la requête assemblée est extraite du DB. – kevingessner