Sök…


Grundläggande användning

Det är inte alltid möjligt att ordentligt paketera alla parametrar i ett enda objekt / samtal. För att hjälpa till med mer komplicerade scenarier tillåter param parametern är en IDynamicParameters instans. Om du gör detta, AddParameters din anpassade AddParameters metod vid rätt tidpunkt och överlämnas kommandot att bifoga till. I de flesta fall är det dock tillräckligt att använda den befintliga typen DynamicParameters :

var p = new DynamicParameters(new { a = 1, b = 2 });
p.Add("c", dbType: DbType.Int32, direction: ParameterDirection.Output);
connection.Execute(@"set @c = @a + @b", p);
int updatedValue = p.Get<int>("@c");

Detta visar:

  • (valfritt) population från ett befintligt objekt
  • (valfritt) lägga till ytterligare parametrar i farten
  • överför parametrarna till kommandot
  • hämtar uppdaterat värde efter kommandot har slutförts

Notera att på grund av hur RDBMS protokoll arbete, är det oftast bara tillförlitlig för att erhålla uppdaterade parametervärden efter alla data (från en Query eller QueryMultiple` drift) har helt förbrukats (till exempel på SQL Server, uppdaterade parametervärden är i slutet av TDS-strömmen).

Dynamiska parametrar i Dapper

connection.Execute(@"some Query with @a,@b,@c", new {a=somevalueOfa,b=somevalueOfb,c=somevalueOfc});

Använda ett mallobjekt

Du kan använda en instans av ett objekt för att skapa dina parametrar

public class SearchParameters {
  public string SearchString { get; set; }
  public int Page { get; set; }
}

var template= new SearchParameters {
  SearchString = "Dapper",
  Page = 1
};

var p = new DynamicParameters(template);

Du kan också använda ett anonymt objekt eller en Dictionary



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow