Jaki jest cel mapowania orm?

0

Cześć, chciałbym się dowiedzieć jaki w ogóle jest cel mapowania danych z baz do klas

googlując "what's the point of orm mapping" lub w ogóle "programming mapping" dostaje tylko 150 sposobów jak, gdzie i czym to robić, ewentualnie

Mapping:
2. Mathematics The correspondence of elements in one set
to elements in the same set or another set.

Lecz, po co to się wykonuje? jedyne co przyszło mi na myśl, to czas dostępu do danych, bo szybciej coś wyciągnąć z klasy niż walić zapytanie do bazy, ale to chyba nie jedyna zaleta

2

Żeby ułatwić sobie życie? Pomyśl ile kodu musiałbyś napisać, żeby przekształcać wyniki zapytania do bazy do jakiegoś grafu obiektów, szczególnie jeśli masz jakieś powiązania n:m i inne cuda. Jasne że jak masz select x, y from z to nie wygląda jeszcze tak źle żeby z wyników zrobić obiekt, ale im dalej w las tym ciemniej.

0

Nie wspominając już o tym, że zapytania czy w ogóle kod poskładany za pomocą ORM, czyli np w takim C# dużo lepiej się debuguje i bardzo często bywa bezpieczniejszy niż kod SQL, który sklecimy samodzielnie. Oczywiście jest też druga strona medalu, bo np. jak się nie wie co to jest n+1 select to można sobie spowolnić aplikację i człowiek będzie się zastanawiać dlaczego.

Dlatego SQL'a należy definitywnie znać żeby takich problemów uniknąć, a ORM jest po prostu wygodny i to już nawet pal licho same selecty, bo tak naprawdę przy update'ach i insert'ach ujawnia się wygoda obiektowego podejścia do sprawy: przynajmniej dla mnie. Czy np. kaskadowe usuwanie powiązanych encji vs ręczne klepanie zależności w SQL co często sprowadza się do twierdzenia: "jedna linijka kodu z wykorzystaniem ORM vs n linijek w SQL gdzie trzeba zadbać o kolejność" Wygoda po prostu.

Rzecz jasna ORM'a nie wykorzystasz do wszystkiego ale jeżeli możesz to dlaczego by nie?

0

Bo operowanie na surowym SQLu z poziomu języka obiektowego jest zazwyczaj po prostu pozbawione sensu.

0

Jest jeszcze jedna zaleta, można mapować z obiektów do baz danych i to całkiem sprawnie.
Np. https://msdn.microsoft.com/en-us/library/jj193542(v=vs.113).aspx

1 użytkowników online, w tym zalogowanych: 0, gości: 1