Po co relacyjne bazy danych skoro jest LINQ?

0

Witam,

Czytam książkę LINQ to Object autora Troy Magennis, wcześniej tylko słyszałem o LINQ.
Zastanawiam się dlaczego stosuje się bazy danych kiedy jest LINQ? Tam też występują przecież relacje itd.

Tym bardziej, że kompilator od razu sam sprawdza typy danych, nie trzeba się łączyć z bazą itd.

0

A jak zamkniesz aplikacje, to co sie z danymi ma stac?

Albo rozwinmy troche temat, po co komu dyski twarde, skoro jest ram?;p

0

No ale jak np. mam List<numery_telefonow>

To przeciez mogę to wszystko edytować zmieniać i zapisywać prawda?

0

no tak, ale co jak zresetujesz program?
Gdzie program ma trzymac dane? Za kazdym razem je generowac?

Czyli jak mamy np ksiazke telefoniczna to zeby odczytac dane to trzeba je wygenerowac jakos (czyli nadal musisz gdzies trzymac te dane, chyba ze masz jakis fajny generator do tworzenia prawdziwych danych...)
A co jesli chcesz po prostu poszukac szybko kowalskiego? Zanim uruchomi Ci sie program (i wygeneruje te miliard wpisow...) to zajmie wieki. No i wszystko bedzie trzymane w RAM. Co jesli baza jest na powiedzmy 100 GB?

3
Grzegorion napisał(a):

Zastanawiam się dlaczego stosuje się bazy danych kiedy jest LINQ? Tam też występują przecież relacje itd.

Bo bazy danych służą do PRZECHOWYWANIA danych, a LINQ do PYTANIA o dane, które przechowujemy np. w bazie.

0

Ok dziękuje :)

No tak ale to w takim wypadku po co pytać poprzez LINQ skoro aby pobrać dane do programu to i tak musimy je wyciągnąć z bazy danych.

Nie lepiej zapytać bazę danych zwykłym Selectem?

0

Linq jest po to, zeby wlasnie nie trzeba bylo klepac SQLi, tylko definiujesz zapytanie w taki obiektowy sposób. Pod spodem na baze leci normalne zapytanie sql, Linq to tutaj to tylko upraszcza.

Jeśli masz jakas prosta baze, np z jedna tabelką, to moze faktycznie prosciej (a na pewno lżej) nie uzywac Linq to pytania bazy, tylko puscic zwyklego selecta. Linq zyskuje na przdatnosci wraz ze wzrostem zlozonosci struktury bazy (w granicach rozsadku) i warto tez korzystanie z linq powiazac z jakims ormem (moje subiektywne zdanie;p)

1
Grzegorion napisał(a):

Ok dziękuje :)

No tak ale to w takim wypadku po co pytać poprzez LINQ skoro aby pobrać dane do programu to i tak musimy je wyciągnąć z bazy danych.

Nie lepiej zapytać bazę danych zwykłym Selectem?

Twoją logiką: po co używać samochodu/samolotu/roweru skoro można iść na nogach...

Doczytaj czym jest baza danych, czym jest SQL a czym jest LINQ.

2
Grzegorion napisał(a):

No tak ale to w takim wypadku po co pytać poprzez LINQ skoro aby pobrać dane do programu to i tak musimy je wyciągnąć z bazy danych.

Nie, nie musimy. W ogóle nie musimy mieć bazy danych.
LINQ operuje na dowolnych kolekcjach danych w pamięci, czyli tablicach, listach, słownikach.
LINQ to XML pozwala na robienie tego samego na plikach XML.
A żeby móc połączyć LINQ z bazą danych potrzebny jest po pierwsze jakiś ORM (aby zmapować relacje na klasy) oraz LINQ provider konwertujący nasze wyrażenia w kod SQL.
Kiedyś można było pytać dane przez LINQ to SQL - bardzo prosty i ograniczony ORM, teraz już od dawna jest nierozwijany, więc nie ma sensu się go uczyć.
Jeśli korzystamy z Entity Frameworka, to musimy korzystać z LINQ to Entities.
Jeśli korzystamy z NHibernate, to możemy korzystać z NHibernate.Linq.

Tak więc - LINQ jako technika zapytań to nie to samo, co ORM, który posiada API w postaci LINQ.

0

Ja bym proponował autorowi wpisać w google LINQ, a w drugiej karcie SQL/MySQL czy po prostu Baza danych, poczytać/porównać i wysunąć odpowiednie wnioski. Ponieważ rozmawianie z kimś kto nie ma pojęcia o co chodzi jest po prostu bezsensowne.

0

LINQ to biblioteka, którą wymyślili ludkowie z Microsoftu żeby ujednolicić zapytania do różych źródeł danych.
Pod wyrażeniem LINQ może się kryć zarówno prosta pętla do obiektu List<>, jak i generowane w locie zapytanie SQL do bazy danych.

Nie ma obowiązku używania LINQ. Można klepać SQL-e ;-)

Ba, nie ma obowiązku używania bazy danych, można dane zapisywać po prostu do pliku... ale w ten sposób napiszemy własny, prymitywny system bazy danych. Jeśli nie to było celem projektu (pisanie bazy) to lepiej użyć gotowej i skupić się na właściwej robocie..

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