Maison >développement back-end >C++ >Comment utiliser correctement DbContext.Database.SqlQuery avec les procédures et paramètres stockés dans le code EF en premier ?

Comment utiliser correctement DbContext.Database.SqlQuery avec les procédures et paramètres stockés dans le code EF en premier ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-18 19:07:08677parcourir

How to Correctly Use DbContext.Database.SqlQuery with Stored Procedures and Parameters in EF Code First?

Utilisation de la méthode DbContext.Database.SqlQuery(sql, params) et de la procédure stockée dans EF Code First CTP5

Entity Framework Code First CTP5 introduit la méthode DbContext.Database.SqlQuery<T>(sql, params), qui permet d'exécuter des requêtes SQL brutes sur la base de données. Cependant, lorsqu'ils tentent d'utiliser cette méthode avec une procédure stockée comportant des paramètres, les développeurs peuvent rencontrer une exception indiquant qu'aucun paramètre n'a été fourni.

Solution :

Pour utiliser avec succès DbContext.Database.SqlQuery<T>(sql, params) avec une procédure stockée qui nécessite des paramètres, les paramètres doivent être spécifiés en tant qu'objets SqlParameter. La syntaxe correcte est :

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

Dans cet exemple, "mon nom de procédure stockée" est le nom de la procédure stockée, et "param1", "param2" et "param3" sont les valeurs à transmettre aux paramètres correspondants dans la procédure stockée . En spécifiant les paramètres de cette manière, la méthode SqlQuery peut fournir correctement la valeur à la procédure stockée pour exécution.

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