Olá pessoal, hoje eu vou mostrar como fazer um select usando o EntityFramework que conecta com o banco de dados e busca algum valor usando SqlParameter ao invés de usar aspas simples ou aspas duplas.

Lembro a vocês que o InjectSQL esta presente em todo o lado e a sua aplicacao pode ser invadida facilmente usando esse metodo.

Para evitar isso, basta usar SqlParameter. Veja o codigo 1.1.

public async Task<Member> GetMemberId(int senderMemberId)
{
    var sql = @"SELECT
                    Field1, Field2, Field3
                FROM
                    MEMBER
                WHERE Mem_Id = @memberId";

    var parameter = new SqlParameter("@memberId", senderMemberId);

    try
    {
        var member = await _db.Member.FromSqlRaw(sql, parameter).FirstOrDefaultAsync();
        return member;
    }
    catch (Exception ex)
    {
        throw ex;
    }
}

Primeiro de tudo eu uso o SELECT com o @(arroba) antes para saber quais são os filtros e campos que eu preciso fazer.

Depois basta criar uma nova instância do SqlParameter com o mesmo valor condicional do parametro WHERE informando o valor que necessita.

Para executar o comando RAW, basta usando o FromSqlRaw e passar o sql e o parametro informado.

Espero que tenha gostado e qualquer duvida pode entrar em contato comigo pelo site https://www.mauriciojunior.net.