Maison >base de données >tutoriel mysql >Comment transmettre correctement les paramètres aux procédures stockées à l'aide de DbContext.Database.SqlQuery ?

Comment transmettre correctement les paramètres aux procédures stockées à l'aide de DbContext.Database.SqlQuery ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-17 12:12:10120parcourir

How to Correctly Pass Parameters to Stored Procedures using DbContext.Database.SqlQuery?

Utilisez DbContext.Database.SqlQuerypour interroger les procédures stockées

Dans Entity Framework Code First CTP5, vous pouvez utiliser la méthode DbContext.Database.SqlQuery<T>(sql, params) pour exécuter une procédure stockée. Toutefois, vous pouvez rencontrer des problèmes lors de la transmission de paramètres à des procédures stockées qui nécessitent des noms de paramètres précis.

Pour résoudre ce problème, vous devez fournir une instance SqlParameter au format suivant :

<code class="language-csharp">context.Database.SqlQuery<我的实体类型>(
    "我的存储过程名称 @param1, @param2, @param3",
    new SqlParameter("param1", param1),
    new SqlParameter("param2", param2),
    new SqlParameter("param3", param3)
);</code>

Cela garantit que les paramètres correspondent correctement à leurs noms dans la procédure stockée. En fournissant explicitement le nom du paramètre, vous pouvez éviter l'erreur « La procédure ou la fonction « mon nom de procédure stockée » nécessite le paramètre « @param1 », mais il n'a pas été fourni ».

Cette méthode vous permet d'interroger dynamiquement des procédures stockées d'une manière fortement typée, ce qui facilite l'utilisation d'Entity Framework pour récupérer des données à partir d'opérations de base de données complexes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn