Avere uno scenario per eseguire una stored procedure e leggere il valore restituito in EF Core, che restituisce un singolo valore.
Ho provato con questo codice, ma questo non funziona. Comprendo che ExecuteSqlCommand
non funziona per select e può essere utilizzato solo per l'aggiornamento al database.
var test = context.Database.ExecuteSqlCommand("SPName");
La stored procedure ha solo un'istruzione select come Select 'somevalue'
Alla ricerca di qualsiasi alternativa per ottenere i dati che restituisce la stored procedure.
In grado di risolvere il mio problema con il codice sottostante. Questo si basa sui suggerimenti forniti nelle risposte sottostanti.
using (var command = context.Database.GetDbConnection().CreateCommand())
{
command.CommandText = "StoredProcedureName";
command.CommandType = CommandType.StoredProcedure;
context.Database.OpenConnection();
var dataReader = command.ExecuteReader();
if (dataReader.Read())
{
string _test = dataReader.GetString(dataReader.GetOrdinal("ColumnName"));
}
}
DbCommand cmd = ctx.Database.GetDbConnection().CreateCommand();
cmd.CommandText = "SPName";
cmd.CommandType = CommandType.StoredProcedure;
if (cmd.Connection.State != ConnectionState.Open)
{
cmd.Connection.Open();
}
return await cmd.ExecuteNonQueryAsync();
Ecco un post a riguardo: https://nodogmablog.bryanhogan.net/2016/07/entity-framework-core-and-calling-a-stored-proceduce/#comment-60582