db.database.ExecuteSQLCommand equivalente in EF 7

asp.net-core asp.net-core-mvc entity-framework entity-framework-core

Domanda

Qual è l'equivalente di

db.Database.ExecuteSqlCommand(Sql.ToString());

in Entity Framework 7? .FromSQL () nella beta 4, ma non ho visto nulla di quanto sopra.

Risposta accettata

La funzione non è ancora implementata. Traccia i suoi progressi usando il numero 624 . Ecco un metodo di estensione approssimativo che puoi utilizzare per ora.

public static int ExecuteSqlCommand(this RelationalDatabase database, string sql)
{
    var connection = database.Connection;
    var command = connection .DbConnection.CreateCommand();
    command.CommandText = sql;

    try
    {
        connection.Open();

        return command.ExecuteNonQuery();
    }
    finally
    {
        connection.Close();
    }
}

Usalo in questo modo:

db.Database.AsRelational().ExecuteSqlCommand("EXEC MySproc");

Nota, questo non tiene conto di alcuna transazione attiva.


Risposta popolare

Volevo solo fornire un aggiornamento del modo più recente per utilizzarlo con Entity Framework Core RC1.

Esiste un'estensione sulla classe DatabaseFacade nello spazio dei nomi Microsoft.Data.Entity che è possibile utilizzare come segue:

_dbContext.Database.ExecuteSqlCommand("EXEC MySproc");


Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché