• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

EntityFramework - dynamiczny select

Object Storage Arubacloud
0 głosów
180 wizyt
pytanie zadane 8 grudnia 2018 w C# przez DrajzleR Obywatel (1,380 p.)

Witam serdecznie od kilku dni głowię się jak mogę rozwiązać mój problem jednak nie potrafię sobie z nim poradzić. Chciałbym się dowiedzieć jak mógłbym zrobić funkcję która jako parametr może przekazać pola do wyboru z entityframework. Już tłumaczę na przykładzie by wszystko było dużo jaśniejsze.

Mam prosty program który działa i wyświetla informacje z bazy.

Niemniej jednak chciałbym sterować selectem który odpytuje bazę i w zależności od miejsca w którym wywołuję funkcję potrzebuję jednego lub kilku pól więcej. Moje pytanie brzmi jak to rozwiązać. Próbowałem użyć

Expression<Func<employees,bool>> @select = n => true; 

jednakże taki warunek działa tylko i wyłącznie w klauzuli where.

 

Przykład tego co pragnę osiągnąć

1 odpowiedź

0 głosów
odpowiedź 8 grudnia 2018 przez mbabane Szeryf (79,280 p.)

.net to nie mój świat więc tak ogólnie:

Jeśli dobrze rozumiem to chcesz zrobić sobie uniwersalną metodę do wszystkiego. Jeśli tak to nie rób tak. (Poczytaj o SOLID).

Dlaczego nie możesz zrobić osobnego zapytania do jakiejś tam konkretnej funkcjonalności?

A samo zapytanie wtedy przykrywa się opisową metodą na zasadzie:

public List<User> getAllUsers()
{
     return //select ktory zwroci wszystkich uzytkownikow
}

public User getUserById(int id)
{
     return //select ktory zwroci usera po id
}
komentarz 8 grudnia 2018 przez DrajzleR Obywatel (1,380 p.)
Uniwersalną do wszystkiego nie. Chciałem zrobić jedną rozszerzalną w zależności od potrzeby.

Potrzebuję taką metodę gdyż pobieram te dane w 5 różnych miejsach i w zależności od miejsca różnią się tylko jedną kolumną z tej samej tabeli. Nie chciałem pobierać całego zestawu danych którego nie potrzebuję w danym miejscu stąd moje pytanie czy można zbudować dynamicznego selecta który w zależności od parametrów pobierze to co aktualnie potrzebuję. Nie chciałbym także budować 5 różnych metod. To jest tylko prosty przykład do zobrazowania bym wiedział jak ruszyć w głównym projekcie.
komentarz 8 grudnia 2018 przez mbabane Szeryf (79,280 p.)
Dla mnie to jest trochę "śmierdzące" rozwiązanie. I według mnie chyba nie jest zgodne z SOLID. Na Twoim miejscu zrobiłbym 5 metod bo prawdopodobnie będzie je dużo łatwiej utrzymywać niż jedną metodę, która ma jakieś nieco bardziej niestandardowe rozwiązania.

Podobne pytania

0 głosów
1 odpowiedź 340 wizyt
pytanie zadane 1 grudnia 2017 w C# przez BeFree Początkujący (380 p.)
+1 głos
1 odpowiedź 94 wizyt
pytanie zadane 22 października 2023 w SQL, bazy danych przez bezbea Nowicjusz (130 p.)
0 głosów
1 odpowiedź 334 wizyt
pytanie zadane 11 lutego 2022 w SQL, bazy danych przez angor10 Nowicjusz (120 p.)

92,696 zapytań

141,607 odpowiedzi

320,114 komentarzy

62,055 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...