2010-03-30 7 views
1

J'essaie de trouver la meilleure façon de construire une requête linq dynamique et de remplir une liste. L'utilisateur aura environ cinq champs différents dans lesquels ils peuvent choisir de filtrer. Actuellement, j'ai le code suivant:Comment construire une requête linq dynamique

List<TBLPROMOTION> promotionInfo = null; 

    bool active = true; 
    int storeId = 1 

      using (WSE webStoreContext = new WSE()) 
     { 
      promotionInfo = 
       webStoreContext.TBLPROMOTION.Include("TBLSTORE").Include("LKPROMOTIONTYPE") 
       .Where("STORE_ID==" + storeId + " and IS_ACTIVE == " + active).ToList(); 
     } 

Cependant, cet exemple des erreurs parce qu'il ne peut pas lire les champs mentionnés dans la clause where. Je ne sais pas pourquoi juste vu cet exemple ailleurs et essayé de l'émuler. Ma question est de savoir si quelqu'un a un exemple qui fonctionnera pour ma situation?

Merci à l'avance, Billy

Répondre

2

Vous avez probablement songiez Dynamic LINQ. Cela vous permettra de construire des requêtes dynamiquement.

+1

Ce fut l'exemple exact qui ne fonctionne pas pour moi. –

0

Il est tentant d'utiliser des requêtes dynamiques dont la syntaxe SQL est plus familière. Je recommanderais contre en les utilisant. Lorsque vous les utilisez, vous pouvez utiliser le type de sécurité et de protection contre les attaques par injection SQL fournies par Linq.

Vous pouvez presque toujours construire une requête en utilisant la syntaxe Linq normale sans le composant dynamique. Et ça vaut la peine d'apprendre Linq.