Zoeken…


Basisgebruik

Het is niet altijd mogelijk om alle parameters netjes in één object / call samen te voegen. Om te helpen bij meer gecompliceerde scenario's, staat dapper toe dat de param parameter een IDynamicParameters instantie is. Als u dit doet, wordt uw aangepaste AddParameters methode op het juiste moment aangeroepen en wordt de opdracht gegeven om aan toe te voegen. In de meeste gevallen is het echter voldoende om het reeds bestaande DynamicParameters type te gebruiken:

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");

Dit laat zien:

  • (optioneel) populatie van een bestaand object
  • (optioneel) direct extra parameters toevoegen
  • de parameters doorgeven aan de opdracht
  • ophalen van een bijgewerkte waarde nadat de opdracht is voltooid

Merk op dat vanwege de manier waarop RDBMS-protocollen werken, het meestal alleen betrouwbaar is om bijgewerkte parameterwaarden te verkrijgen nadat alle gegevens (van een Query of QueryMultiple`-bewerking) volledig zijn verbruikt (bijvoorbeeld op SQL Server zijn bijgewerkte parameterwaarden aan het einde van de TDS-stream).

Dynamische parameters in Dapper

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

Een sjabloonobject gebruiken

U kunt een instantie van een object gebruiken om uw parameters te vormen

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);

U kunt ook een anoniem object of een Dictionary



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow