.net core 无法在.Net核心中执行原始Sql

.net core 无法在.Net核心中执行原始Sql,.net-core,entity-framework-core,.net Core,Entity Framework Core,我正在使用实体框架的Core2.0。 我已使用scaffold DBContext成功生成了上下文。 我有一个表雇员的数据库集。 我需要执行SToredProcedure,它将给出员工列表。 我看不到.FromSql或.ExecuteCommand选项 我添加了EntityFrameworkCore.SqlServer(2.0.1)、EntityFrameworkCore.SqlServer.Design(1.1.5)、Microsoft.VisualStudio.Web.CodeGenerat

我正在使用实体框架的Core2.0。 我已使用scaffold DBContext成功生成了上下文。 我有一个表雇员的数据库集。 我需要执行SToredProcedure,它将给出员工列表。 我看不到.FromSql或.ExecuteCommand选项

我添加了EntityFrameworkCore.SqlServer(2.0.1)、EntityFrameworkCore.SqlServer.Design(1.1.5)、Microsoft.VisualStudio.Web.CodeGeneration.Design(2.0.2)和EntityFrameworkCore.Tools(2.0.1),但没有添加


请参考上述问题。

这是目前在.NET中执行原始SQL的唯一方法:

var conn = _context.Database.GetDbConnection();
try
{
    await conn.OpenAsync();
    using (var command = conn.CreateCommand())
    {
        command.CommandText = "SELECT * From Table1 WHERE sender = @sender";
        DbParameter sender = command.CreateParameter();
        sender.ParameterName = "sender";
        sender.Value = "Value";
        command.Parameters.Add(sender);
        DbDataReader reader = await command.ExecuteReaderAsync();

        if (reader.HasRows)
        {
            while (await reader.ReadAsync())
            {
                int SubscriptionID = reader.GetInt32(0);
            }
        }
        reader.Dispose();
    }
}
finally { conn.Close(); }

您也可以将其用于存储过程。

这是目前在.NET中执行原始SQL的唯一方法:

var conn = _context.Database.GetDbConnection();
try
{
    await conn.OpenAsync();
    using (var command = conn.CreateCommand())
    {
        command.CommandText = "SELECT * From Table1 WHERE sender = @sender";
        DbParameter sender = command.CreateParameter();
        sender.ParameterName = "sender";
        sender.Value = "Value";
        command.Parameters.Add(sender);
        DbDataReader reader = await command.ExecuteReaderAsync();

        if (reader.HasRows)
        {
            while (await reader.ReadAsync())
            {
                int SubscriptionID = reader.GetInt32(0);
            }
        }
        reader.Dispose();
    }
}
finally { conn.Close(); }

您也可以将其用于存储过程。

如果要使用EF Core执行行SQL,请尝试以下操作

var employees = context.Employees
.FromSql("SELECT * FROM dbo.Employees")
// If you want to execute a stored procedure, then below
// .FromSql("EXECUTE {SP_NAME}")
.ToList();
但请注意,此处所述存在某些限制:

如果要使用EF Core执行行SQL,请尝试以下操作

var employees = context.Employees
.FromSql("SELECT * FROM dbo.Employees")
// If you want to execute a stored procedure, then below
// .FromSql("EXECUTE {SP_NAME}")
.ToList();
但请注意,此处所述存在某些限制:

到目前为止,您尝试了什么?你也在找什么?我在谷歌上搜索了“ef核心调用存储过程”,得到了很多很多结果(这里的大多数都是带有公认答案的问题)可能与我无法从SQL方法中获取intellisense的结果重复。到目前为止,您尝试了什么?你也在找什么?我在Google中搜索了“ef核心调用存储过程”,得到了很多很多结果(这里的大多数都是问题和公认的答案),可能与我无法从FromSql方法中获取intellisense的结果重复