web-dev-qa-db-fra.com

Comment récupérer d'abord le paramètre de sortie de la procédure stockée par le code EF

je suis nouveau dans EF et travaille d'abord avec le code EF. vient de recevoir un lien https://code.msdn.Microsoft.com/How-to-retrieve-output-e85526ba qui montre comment utiliser d'abord le type de sortie lu par EF db. donc quelqu'un me dit comment récupérer d'abord le paramètre de sortie de la procédure stockée par le code EF?

si possible, donnez-moi un petit exemple de code ou redirigez-moi vers des articles pertinents.

merci

J'ai une solution

var outParam = new SqlParameter();
outParam.ParameterName = "TotalRows";
outParam.SqlDbType = SqlDbType.Int;
outParam.ParameterDirection = ParameterDirection.Output;

var data = dbContext.Database.SqlQuery<MyType>("sp_search @SearchTerm, @MaxRows, @TotalRows OUT", 
               new SqlParameter("SearchTerm", searchTerm), 
               new SqlParameter("MaxRows", maxRows),
               outParam);
var result = data.ToList();
totalRows = (int)outParam.Value;
11
Monojit Sarkar

Pour récupérer les données d'un appel de procédure stockée, vous pouvez utiliser les éléments suivants

using(var db = new YourConext())
{
       var details = db.Database.SqlQuery<YourType>("exec YourProc @p", 
                      new SqlParameter("@p", YourValue));
}

YourType : peut être entier ou chaîne ou long ou même un ComplexType

@ p : dans le cas où la procédure stockée a des paramètres et vous pouvez en définir autant que vous le souhaitez à partir des paramètres

si vous avez besoin de plus d'informations sur SqlQuery, vous pouvez vérifier les points suivants

  1. Écriture de requêtes SQL pour les entités
  2. Entity Framework Code First et procédures stockées

J'espère que cela vous aidera

5
Monah