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



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow