Podczas poszukiwania LINQ warunkowy gdzie klauzula, znalazłem this article, sposób ich wykorzystania jest jak poniżej:LINQ Warunkowe Where
var logs = from log in context.Logs
select log;
if (filterBySeverity)
logs = logs.Where(p => p.Severity == severity);
if (filterByUser)
logs = logs.Where(p => p.User == user);
ale zastanawiałem się, czy to metoda skuteczna? Ile zapytań wykona linq?
Spojrzałem na odpowiedź i myślę, że ta metoda - choć może być mniej wydajna, z pewnością jest znacznie lepsza z punktu widzenia bezpieczeństwa typu. Wszakże na początku LINQ został zaprojektowany w celu uniknięcia zapytań dynamicznych, więc jest to bezsensowne, a po drugie zawsze jest podatne na SQL Injection, jeśli nie jesteś ostrożny. –