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.

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 “skomplikowany” update | Maciej Aniserowicz o programowaniu…

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

Krzysiek
Krzysiek

Co to za kolorowanie składni? ;)

Moja książka

Facebook

Zobacz również