Dapper.NET
Dynamische parameters
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