Procédure : Exécuter une procédure stockée paramétrable avec EntityCommand

Cette rubrique indique comment exécuter une procédure stockée paramétrable à l'aide de la classe EntityCommand.

Pour exécuter le code de cet exemple

  1. Ajoutez le modèle School à votre projet et configurez votre projet de façon à utiliser Entity Framework. Pour plus d’informations, consultez Guide pratique : utiliser l’Assistant Entity Data Model.

  2. Dans la page de code de votre application, ajoutez les directives using suivantes (Imports dans Visual Basic) :

    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.Common;
    using System.Data.EntityClient;
    using System.Data.Metadata.Edm;
    
    Imports System.Collections.Generic
    Imports System.Collections
    Imports System.Data.Common
    Imports System.Data
    Imports System.IO
    Imports System.Data.SqlClient
    Imports System.Data.EntityClient
    Imports System.Data.Metadata.Edm
    
    
  3. Importez la procédure stockée GetStudentGrades et spécifiez des entités CourseGrade comme type de retour. Pour plus d’informations sur la manière d’importer une procédure stockée, consultez Procédure : importer une procédure stockée.

Exemple

Le code suivant exécute la procédure stockée GetStudentGrades dans laquelle StudentId est un paramètre requis. Les résultats sont alors lus par un EntityDataReader.

using (EntityConnection conn =
    new EntityConnection("name=SchoolEntities"))
{
    conn.Open();
    // Create an EntityCommand.
    using (EntityCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "SchoolEntities.GetStudentGrades";
        cmd.CommandType = CommandType.StoredProcedure;
        EntityParameter param = new EntityParameter();
        param.Value = 2;
        param.ParameterName = "StudentID";
        cmd.Parameters.Add(param);

        // Execute the command.
        using (EntityDataReader rdr =
            cmd.ExecuteReader(CommandBehavior.SequentialAccess))
        {
            // Read the results returned by the stored procedure.
            while (rdr.Read())
            {
                Console.WriteLine("ID: {0} Grade: {1}", rdr["StudentID"], rdr["Grade"]);
            }
        }
    }
    conn.Close();
}
Using conn As New EntityConnection("name=SchoolEntities")
    conn.Open()
    ' Create an EntityCommand. 
    Using cmd As EntityCommand = conn.CreateCommand()
        cmd.CommandText = "SchoolEntities.GetStudentGrades"
        cmd.CommandType = CommandType.StoredProcedure
        Dim param As New EntityParameter()
        param.Value = 2
        param.ParameterName = "StudentID"
        cmd.Parameters.Add(param)

        ' Execute the command. 
        Using rdr As EntityDataReader = cmd.ExecuteReader(CommandBehavior.SequentialAccess)
            ' Read the results returned by the stored procedure. 
            While rdr.Read()
                Console.WriteLine("ID: {0} Grade: {1}", rdr("StudentID"), rdr("Grade"))
            End While
        End Using
    End Using
    conn.Close()
End Using

Voir aussi