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

Simple.Data i "skomplikowany" update


13.03.2014

Simple.Datajest super. A ostatnio okazało się jeszcze… supersze.

Chciałem wygenerować zapytanie update “doklejające” pewną wartość do kolumny tekstowej. W Postgre byłoby to coś takiego:

update people set StatusUpdate = StatusUpdate || "new status," where id=1

Jak widać – robię update jednocześnie odwołując się do wartości kolumny z aktualizowanego wiersza
To by akurat nie zadziałało dla pierwszej “iteracji”, bowiem “null || string” zwróci nulla i zawsze miałbym pustą kolumnę. Finalnie w gołym sql powinno być tak:

update people set StatusUpdate = concat(StatusUpdate || "new status,") where id=1

Zmóżdżałem się nad tym zagadnieniem dobry kwadrans, zanim powstał kod robiący dokładnie to czego potrzebuję:

int id = 1;
string newStatus = "new status";
var peopleTable = db.People;
peopleTable.UpdateAll(
    peopleTable.Id == id
    , StatusUpdate: peopleTable.StatusUpdate.concat(newStatus + ",")
);

Działa mi to na Postgre, bo na Postgre jest funkcja concat operująca na stringach! Oczywiście nie tylko na Postgre jest funkcja concat() operująca na stringach, ale to nie ma znaczenia. Znaczenie ma fakt, że Simple.Data potrafi w ten sposób wykorzystywać funkcje dostępne w bazie, której akurat przyszło nam używać.

Awesome.

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

Simple.Data i “skomplikowany” update | Maciej Aniserowicz o programowaniu…

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

Krzysiek
Krzysiek
10 years ago

Co to za kolorowanie składni? ;)

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również