db.database.ExecuteSQLCommand 相当于 EF 7

db.database.ExecuteSQLCommand equivalent in EF 7

相当于

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

在Entity Framework 7?我在 beta 4 中看到了 .FromSQL(),但没有看到上面的任何东西。

该功能尚未实现。使用问题 #624 跟踪其进度。这是您现在可以使用的粗略扩展方法。

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();
    }
}

这样使用:

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

请注意,这没有考虑任何活动交易。

只是想提供有关 Entity Framework Core RC1 的最新使用方法的更新。

DatabaseFacade class 在 Microsoft.Data.Entity 命名空间中有一个扩展,您可以将其用作如下:

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