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

EntityFramework - dynamiczny select

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
279 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,260 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,260 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ź 525 wizyt
pytanie zadane 1 grudnia 2017 w C# przez BeFree Początkujący (380 p.)
+1 głos
1 odpowiedź 208 wizyt
pytanie zadane 22 października 2023 w SQL, bazy danych przez bezbea Nowicjusz (130 p.)
0 głosów
1 odpowiedź 479 wizyt
pytanie zadane 11 lutego 2022 w SQL, bazy danych przez angor10 Nowicjusz (120 p.)

93,434 zapytań

142,429 odpowiedzi

322,664 komentarzy

62,800 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

...