Ce qui se passe dans le paramètre params de la .SqlQuery() méthode dans le Cadre de l'Entité?

La méthode prend une chaîne de la requête, et un tableau de Object [] pour les paramètres, sans doute pour éviter les Injection SQL.

Cependant nulle part sur la terre est-elle documentée de ce que vous devriez mettre dans le tableau d'objets.

Il y a une autre question sur de SORTE que vous demande c'est exactement la même chose, mais le a accepté de répondre ne fonctionne pas: Lors de l'utilisation de DbSet<T>.SqlQuery(), comment utiliser des paramètres nommés?

J'ai essayé toutes les formes de paramètre de remplacement je pense, et tous lancer une exception. Des idées?

Aurait-il été aussi simple que:

SqlQuery("SELECT * FROM @table", "Users")

Edit: Voici certaines choses que j'ai essayé (à l'Exception d'un SqlException):

    var result = context.Users.SqlQuery<T>("SELECT * FROM @p0 WHERE @p1 = '@p2'", 
new SqlParameter("p0", tableName), 
new SqlParameter("p1", propertyName), 
new SqlParameter("p2", searchQuery));

Cela donne Must declare the table variable "@p0".

var result = context.Users.SqlQuery<T>("SELECT * FROM {0} WHERE {1} = '{2}'", tableName, propertyName, searchQuery);

Cela donne Must declare the table variable "@p0".

Quel exception êtes-vous d'obtenir à partir de votre exemple? Aussi, je ne savais même pas que vous pouvez utiliser un paramètre pour le nom de la table dans une requête...
SqlQuery exécute SQL directe avec la base de données. Je reçois plusieurs erreurs en fonction de l'approche que j'ai essayer. Je vais en mettre dans la question.
Facile de référence: msdn.microsoft.com/en-us/library/...
Vous ne pouvez pas utiliser une variable comme nom de la table: stackoverflow.com/questions/14003241/.... Vous avez besoin de quelque chose comme: var result = context.Users.SqlQuery<T>("SELECT * FROM " + tableName + " WHERE @p0 = '@p1'", new SqlParameter("p0", propertyName), new SqlParameter("p1", searchQuery));
Alors, quand j'ai dit "je ne savais même pas que vous pouvez utiliser un paramètre pour le nom de la table" je suppose que je ne devrais pas avoir été gêné de ne pas savoir que...

OriginalL'auteur NibblyPig | 2013-07-25