L'exécution de procédures stockées à partir d'un DbContext
J'ai deux simples procédures stockées dans sql server:
SetData(@id int, @data varchar(10))
GetData(@id int)
.
GetData
actuellement renvoie une seule ligne et une seule colonne ensemble de résultats, mais je pourrais changer pour être une fonction appropriée si nécessaire.
Quelle serait la meilleure façon d'exécuter ces à partir d'un DbContext
exemple?
Si possible, j'aimerais éviter d'avoir à faire ma propre connexion à la gestion de l'état et/ou de l'exposer EF-types spécifiques. J'ai commencé par récupérer les ObjectContext
et en regardant la Execute*
fonctions, mais la documentation est assez mauvais et manque d'exemples impliquant des procédures stockées.
Idéalement, je voudrais être capable de faire cela:
myContext.ExecuteNonQuery("SetData", id, data);
var data = myContext.ExecuteScalar<string>("GetData", id);
OriginalL'auteur Diego Mijelshon | 2011-06-08
Vous devez vous connecter pour publier un commentaire.
DbContext offre ces fonctions. Utilisation:
pour exécuter la récupération de la procédure stockée et
pour exécuter la modification des données de la procédure stockée.
C'est une des manières. Il convient également de travailler sans l'aide de
SqlParameter
- seulement de transmettre des valeurs. Je ne suis pas sûr si vous n'avez pas à vous référer à eux par @p0, @p1, etc. lors de l'utilisation de valeurs directement.J'ai fini par passer un objet anonyme et de le convertir en SqlParameters en interne.
OriginalL'auteur Ladislav Mrnka