2

Je pensais que je lu quelque part que vous en fait pouvez interroger votre modèle conceptuel avec l'entité Sql, en utilisant des requêtes basées chaîne en tant que tels:Interrogation modèle conceptuel avec Entity SQL

class DBSetTest<T> : List<T> 
{ 
    DBEntities db = new DBEntities(); 

    public DBSetTest() 
    { 
     ObjectQuery<T> test = new ObjectQuery<T>("SELECT Name FROM Sessions WHERE Name = 'sean'", db); 

     foreach (var v in test) 
     { 
      this.Add(v); 
     } 
    }  
} 

Où Sessions 'est une entité personnalisée de type I défini avec un 'DefiningQuery'. Je l'interrogerais autrement avec la syntaxe linq normale. Est-ce que Entity SQL interroge uniquement le magasin ou peut-il interroger mon modèle conceptuel exactement comme le fait LINQ-to-Entities? Si ce n'est pas sûr, j'ai la bonne syntaxe, car ce n'est probablement pas la syntaxe sql. Mon but est de créer une sorte de liste générique personnalisée ici, où je peux écrire des requêtes dynamiques contre mon modèle conceptuel.

je reçois l'erreur suivante:

« Nom » ne pouvait pas être résolue dans le cadre ou le contexte actuel. Assurez-vous que toutes les variables référencées sont dans la portée, que les schémas requis sont chargés et que les espaces de noms sont correctement référencés. Près simple identifiant, ligne 1, colonne 43.

+0

Ne pas connaître les types personnalisés, mais cela n'est pas valide ESQL. Avez-vous regardé? http://msdn.microsoft.com/en-us/library/bb399554.aspx –

Répondre

1

Je pense, ce n'est pas SINTAX valide Entity SQL, probablement vous devez ajouter un peu de mot-clé comme ceci:

SELECT VALUE s.Name FROM your_ObjectContext_name.Sessions AS s WHERE s.Name = 'sean' 
0

L'erreur que vous obtenez dit que vous devez Mets-le. avant Nom, comme ceci:

"SELECT it.Name FROM Sessions WHERE it.Name = 'sean'" 
Questions connexes