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



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow