Enity Framework - Jak zwrócić dane?

0

Witam, tworzę aplikację która działa na bazie danych zamieszczonych na SQL Server, pobieram dane za pomocą Entity Frameworka, lecz jak efektywnie zwrócić listę elementów do listy? Aktualnie robię to tak

 var x = new ObservableCollection<Podatnik>(per.ToList()) 

(per - lista do której przypisuje zwróconą wartość z LINQ)

lecz zauważyłem że przy debugowaniu program się na takim czymś zatrzymuję na chwilę, a przecież tam jest kilka rekordów, ciekawe co by było gdyby tam było 10 000 rekordów...
Jak efektywnie zwrócić taką listę? Jaką konwersję zastosować?

0

Jeśli chcesz zwrócić listę jakichś elementów z bazy, to używaj czegoś takiego:

using (EntityNazwa entity = new EntityNazwa ())
{
    var lista = entity.Tabela.Select(t => t.nazwisko).ToList();
}

Powyższe przypisze Ci do zmiennej lista, listę nazwisk z tabeli Tabela. To oczywiście przykład.

0
lukee12 napisał(a):

lecz zauważyłem że przy debugowaniu program się na takim czymś zatrzymuję na chwilę

Zatrzymuje się na wczytywaniu danych czy przy tworzeniu ObservableCollection?

Jak efektywnie zwrócić taką listę? Jaką konwersję zastosować?

Nie konwersję tylko stronicowanie. Rekordy powinny być wczytywane mniejszymi paczkami, a nie wszystkie na raz. Co za tym idzie, filtrowanie i sortowanie trzeba wykonać po stronie bazy.

Znaczenie ma też zapytanie generowane przez EF, ten ORM radzi sobie tylko z prostymi projekcjami i selekcjami, każda agregacja, złączenie czy podzapytanie automatycznie powoduje wygenerowanie bardzo niewydajnego kodu SQL. EF nie daje też żadnej możliwości wpływu na generowany SQL, dlatego najlepiej użyć zamiast niego prawdziwego ORMa.

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