fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
< 1 minut

Simple.Data i generowanie SQL


17.03.2014

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&lt;SimpleQueryClauseBase&gt; 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.

Nie przegap kolejnych postów!

Dołącz do ponad 9000 programistów w devstyle newsletter!

Tym samym wyrażasz zgodę na otrzymanie informacji marketingowych z devstyle.pl (doh...). Powered by ConvertKit
Notify of
trackback

Simple.Data i generowanie SQL | Maciej Aniserowicz o programowaniu…

Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl…

tomaszk-poz
tomaszk-poz

Mam wrażenie, że ta Simple.Data jest jakieś takie niekompletne.
Po pierwsze:
Męczyłem się z uzyskaniem wynikowego sql, analogia z przykładu z git-a nie działała (ćwiczyłem w mstest).
Pomogło spojrzenie do źródeł i wykorzystanie SimpleDataTraceSources.TraceSource.Listeners.Add(myListener).
Po drugie: nie jestem w stanie uzyskać prostego joina na mojej bazie (fakt – bez jawnego obcego klucza w bazie). No ale od czego są noce i dnie :-D
Jak dla mnie na razie zostaje przy EF. Ale nie powiem, ciekawe doświadczenie przy dociekaniu co i jak, ale mimo wszystko nie tak to powinno być…

Moja książka

Facebook

Zobacz również