Dapper.NET
Dynamische Parameter
Suche…
Grundlegende Verwendung
Es ist nicht immer möglich, alle Parameter in einem einzigen Objekt / Aufruf zusammenzufassen. Um bei komplizierteren Szenarien zu helfen, ermöglicht param
, dass der Parameter IDynamicParameters
eine IDynamicParameters
Instanz ist. Wenn Sie dies tun, wird Ihre benutzerdefinierte AddParameters
Methode zu gegebener Zeit aufgerufen und der Befehl zum Anhängen übergeben. In den meisten Fällen reicht es jedoch aus, den bereits vorhandenen DynamicParameters
Typ zu verwenden:
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");
Das zeigt:
- (optional) Population eines vorhandenen Objekts
- (optional) Hinzufügen zusätzlicher Parameter im laufenden Betrieb
- Übergabe der Parameter an den Befehl
- Abrufen aller aktualisierten Werte, nachdem der Befehl abgeschlossen wurde
Beachten Sie, dass aufgrund wie RDBMS Protokolle arbeiten, ist es in der Regel nur zuverlässig jegliche Daten zu erhalten , aktualisiert Parameterwerte nach (aus einer Query
oder QueryMultiple` Betrieb) wurde , sind vollständig verbraucht (zum Beispiel auf SQL Server, aktualisiert Parameterwerte am Ende des TDS-Streams).
Dynamische Parameter in Dapper
connection.Execute(@"some Query with @a,@b,@c", new {a=somevalueOfa,b=somevalueOfb,c=somevalueOfc});
Verwenden eines Vorlagenobjekts
Sie können eine Instanz eines Objekts verwenden, um Ihre Parameter zu bilden
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);
Sie können auch ein anonymes Objekt oder ein Dictionary