17
Mar

Simple.Data i generowanie SQL

Simple.Data jest bardzo fajne, ale czasem… niewystarczające. Na przykład na chwilę obecną nie są wspierane podzapytania. Wtedy z pomocą przychodzi biblioteka Simple.Data.RawSql dająca możliwość wysyłania “gołego” SQLa przez Simple.Data.

Tego gołego SQLa trzeba jednak jakoś zbudować/skleić. Zamiast robić to ręcznie, możemy… użyć Simple.Data! Nie jest to chyba nigdzie oficjalnie w dokumentacji opisane, więc zamieszczam kod transformujący zapytanie na tekst z użyciem aktualnego providera:

dynamic adapter = db.GetAdapter();
var queryBuilder = new QueryBuilder(adapter);
var query = _db.Db.Users.All();
IEnumerable<SimpleQueryClauseBase> temp;
ICommandBuilder commandBuilder = queryBuilder.Build(query, out temp);
string sql = commandBuilder.Text;

Warto zwrócić uwagę, że uzyskany commandBuilder zawiera słownik Parameters wytworzonymi podczas generowania zapytania – mogą okazać się przydatne jeśli to parametryzowane zapytanie w ten sposób generujemy.

Autor

Maciej Aniserowicz

Maciej Aniserowicz
"Procent"
developer / architect

MVP
MCP

Search
Facebook
Twitter
Archiwum
Kategorie
© Copyright 2008-2014 Maciej Aniserowicz. All rights reserved. Running on WordPress.