È possibile utilizzare ObjectContext.ExecuteFunction metodo (DbContext
è un wrapper sopra ObjectContext
) per eseguire alcune stored procedure e passare elenco dei parametri:
FooEntities db = new FooEntities();
var objectContext = ((IObjectContextAdapter)db).ObjectContext;
// create all parameters you need
var name = new ObjectParameter("Name", "Lazy");
var age = new ObjectParameter("Age", 29);
// call stored procedure with these two parameters only
var result = objectContext.ExecuteFunction<Result>("ProcedureName", name, age);
Puoi avvolgere questo codice in metodo di estensione per il vostro DbContext
:
public static Result ProcedureName(this FooEntities db, name, age)
{
// code above
}
Uso sarà come: var result = db.ProcedureName("Lazy", 29);
fonte
2013-06-20 18:06:37
Nel caso in cui qualcuno controlli la questione e sta usando EF6 o superiore, è possibile farlo utilizzando dbContext.Database.SqlQuery. Se disponi di parametri opzionali, puoi impostare il valore su DbNull.Value. È possibile creare per la costruzione di SqlParameters e quando il valore è null, imposta DbNull.Value. Spero possa essere d'aiuto. –
@FranciscoGoldenstein grazie! Il tempo scorre, tutto cambia) Aggiungerò il tag con la versione EF appropriata alla domanda –
grazie a @FranciscoGoldenstein –