Raw SQL Query without DbSet - Entity Framework Core

后端 未结 17 1372
眼角桃花
眼角桃花 2020-11-22 13:27

With Entity Framework Core removing dbData.Database.SqlQuery I can\'t find a solution to build a raw SQL Query for my full-text search query th

17条回答
  •  萌比男神i
    2020-11-22 13:51

    Not directly targeting the OP's scenario, but since I have been struggling with this, I'd like to drop these ex. methods that make it easier to execute raw SQL with the DbContext:

    public static class DbContextCommandExtensions
    {
      public static async Task ExecuteNonQueryAsync(this DbContext context, string rawSql,
        params object[] parameters)
      {
        var conn = context.Database.GetDbConnection();
        using (var command = conn.CreateCommand())
        {
          command.CommandText = rawSql;
          if (parameters != null)
            foreach (var p in parameters)
              command.Parameters.Add(p);
          await conn.OpenAsync();
          return await command.ExecuteNonQueryAsync();
        }
      }
    
      public static async Task ExecuteScalarAsync(this DbContext context, string rawSql,
        params object[] parameters)
      {
        var conn = context.Database.GetDbConnection();
        using (var command = conn.CreateCommand())
        {
          command.CommandText = rawSql;
          if (parameters != null)
            foreach (var p in parameters)
              command.Parameters.Add(p);
          await conn.OpenAsync();
          return (T)await command.ExecuteScalarAsync();
        }
      }
    }
    

提交回复
热议问题