2010-09-02 7 views
0

Linq to Entities utilise ObjectQuery qui implémente IQueryable. J'utilise normalement les méthodes IQueryable pour filtrer mes données mais aujourd'hui j'avais besoin de créer une instruction LIKE spéciale. Le framework continue à penser qu'il est intelligent et "échappe" à mon caractère générique "%" avec le tilde qui a rendu mon instruction LIKE spéciale nulle et non avenue. Donc, après avoir creusé autour, j'ai trouvé que ObjectQuery a une surcharge pour la méthode Where qui vous permet de passer une chaîne avec ObjectParameters. J'ai fait cela mais il ne s'exécute pas comme l'a fait IQueryable. Lorsque je lance l'application, rien ne se passe après que ce code soit atteint. Pas d'erreurs, et pas de hits sur la base de données, donc je sais que la requête que j'ai créée n'est pas en cours d'exécution.Comment exécuter un ObjectQuery <T>

Comment exécuter ce chiot?

public IQueryable<tbl_Path> GetPathsByWildCardSearch(string searchTerm) 
    { 
     return this.ObjectContext.tbl_Path 
      .Where("FullPath NOT LIKE @p0 and FullPath LIKE @p1", 
       new ObjectParameter("p0", string.Format("%{0}%{1}%", searchTerm, tbl_Path.PathSeperator)), 
       new ObjectParameter("p1", string.Format("%{0}%", searchTerm))); 
    } 

Répondre

0

;) finalement vu il y avait une méthode Execute() sur elle.

Questions connexes