Dapper.NET
Parametry dynamiczne
Szukaj…
Podstawowe użycie
Nie zawsze jest możliwe spakowanie wszystkich parametrów w jednym obiekcie / wywołaniu. Aby pomóc w bardziej skomplikowanych scenariuszach, dapper pozwala parametrowi param
być instancją IDynamicParameters
. Jeśli to zrobisz, twoja niestandardowa metoda AddParameters
zostanie wywołana w odpowiednim czasie i AddParameters
polecenie do dołączenia. W większości przypadków wystarczy jednak użyć wcześniej istniejącego typu 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");
To pokazuje:
- (opcjonalnie) populacja z istniejącego obiektu
- (opcjonalnie) dodawanie dodatkowych parametrów w locie
- przekazanie parametrów do polecenia
- pobieranie dowolnej zaktualizowanej wartości po zakończeniu polecenia
Należy pamiętać, że ze względu na działanie protokołów RDBMS zwykle wiarygodne jest uzyskiwanie zaktualizowanych wartości parametrów po pełnym zużyciu danych (z operacji Query
lub QueryMultiple`) (na przykład na serwerze SQL Server zaktualizowane wartości parametrów znajdują się na końcu strumienia TDS).
Parametry dynamiczne w Dapper
connection.Execute(@"some Query with @a,@b,@c", new {a=somevalueOfa,b=somevalueOfb,c=somevalueOfc});
Korzystanie z obiektu szablonu
Możesz użyć wystąpienia obiektu do utworzenia parametrów
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);
Możesz także użyć anonimowego obiektu lub Dictionary