Skip to content

Latest commit

 

History

History
154 lines (123 loc) · 3.24 KB

getting-started.pt-BR.md

File metadata and controls

154 lines (123 loc) · 3.24 KB

Primeiros Passos

English | Português (Brasil)

Voltar ao README | Motivação

Este guia mostra padrões básicos de Dapper com o provider SQL Server, Dapper.TypedParameters.SqlServer 1.0.0. Para PostgreSQL, veja o guia do provider PostgreSQL.

Pré-requisitos

  • Um projeto com net8.0 ou net10.0.
  • Dapper.
  • Microsoft.Data.SqlClient.
  • Um banco SQL Server.

Instalação

Instale o pacote stable atual pelo NuGet.org:

dotnet add package TypedParameters.Dapper.SqlServer

Para uma instalação reproduzível da versão 1.0.0:

dotnet add package TypedParameters.Dapper.SqlServer --version 1.0.0

Use o namespace do pacote no C#:

using Dapper.TypedParameters.SqlServer;

Imports

using Dapper;
using Dapper.TypedParameters.SqlServer;
using Microsoft.Data.SqlClient;

Criar uma Conexão

await using var connection = new SqlConnection(connectionString);
await connection.OpenAsync();

Primeiro SELECT

var customer = await connection.QuerySingleOrDefaultAsync<Customer>(
    """
    SELECT Id, Document, Name
    FROM dbo.Customers
    WHERE Document = @Document;
    """,
    new
    {
        Document = SqlParam.VarChar("12345678901", 11)
    });

INSERT

int rows = await connection.ExecuteAsync(
    """
    INSERT INTO dbo.Customers (Document, Name)
    VALUES (@Document, @Name);
    """,
    new
    {
        Document = SqlParam.VarChar("12345678901", 11),
        Name = SqlParam.NVarChar("Ada Lovelace", 100)
    });

UPDATE

int rows = await connection.ExecuteAsync(
    """
    UPDATE dbo.Customers
    SET Name = @Name
    WHERE Document = @Document;
    """,
    new
    {
        Document = SqlParam.VarChar("12345678901", 11),
        Name = SqlParam.NVarChar("Grace Hopper", 100)
    });

DELETE

int rows = await connection.ExecuteAsync(
    "DELETE FROM dbo.Customers WHERE Document = @Document;",
    new
    {
        Document = SqlParam.VarChar("12345678901", 11)
    });

Valores Nulos

await connection.ExecuteAsync(
    """
    UPDATE dbo.Customers
    SET Nickname = @Nickname
    WHERE Document = @Document;
    """,
    new
    {
        Document = SqlParam.VarChar("12345678901", 11),
        Nickname = SqlParam.NVarChar(null, 80)
    });

null é convertido para DBNull.Value quando o parâmetro é materializado para Microsoft.Data.SqlClient.

Múltiplos Parâmetros

var invoice = await connection.QuerySingleAsync<Invoice>(
    """
    SELECT Id, CustomerId, Amount
    FROM dbo.Invoices
    WHERE CustomerId = @CustomerId
      AND Amount >= @MinimumAmount;
    """,
    new
    {
        CustomerId = SqlParam.Int(42),
        MinimumAmount = SqlParam.Decimal(100M, precision: 18, scale: 2)
    });

Exemplos Especializados