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.

0 0 votes
Article Rating
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback
10 years ago

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

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

tomaszk-poz
tomaszk-poz
10 years ago

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ć…

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również