Cześć, robię system (ta część o której mowa to WebAPI .Net Core 2), w którym nie używam Entity Framework (używam go jedynie do logowania użytkowników). To nie jest prosty crud, więc sam klepię SQLe.
Ale doszedłem do miejsca, którego się obawiałem. Mam zwrócić listę obiektów na podstawie przekazanego warunku. I teraz mam kilka możliwości:
- Wyposażyć serwis w szereg metod, które będą właściwie robiły to samo
- Wyposażyć serwis w metodę, która przyjmie string - będzie to warunek WHERE do dodania w zapytaniu SQL i wywołany z poziomu kontrolera - to rozwiązanie wydaje mi się mało eleganckie
- Wyposażyć serwis w metodę, która przyjmie jakiś predykat za pomocą którego zwróci odpowiednie dane. I to wydaje mi się najbardziej rozsądne podejście (zresztą na tej zasadzie działają ORMy).
Tylko teraz pojawia się problem. W związku z tym, że to jest .Net Core 2, nie mogę użyć System.Data.Linq. Więc albo użyję w tym miejscu też ORMa, co byłoby jednak nieco głupie, albo znajdę inny sposób na przetłumaczenie predykatu LINQ do SQL.
Wyczytałem w necie wiele rozwiązań robiących z DataReader IEnumerable, jednak to ma jeden główny minus - pobiera wszystkie dane z bazy :) Tego oczywiście chcę uniknąć. Więc jakie są możliwości żeby to zrobić bez żadnego typowego ORMa? Aktualnie posługuję się bazą MariaDb i ADO .NET.