Nel nostro codebase per un sistema sofisticato che controlla molti aspetti delle aziende, abbiamo una certa legge non scritta che non si spaventa nel codice con SQL complicato, invece di scriverlo in una funzione nella classe dell'entità per centralizza l'accesso al database e questo ottimo modello diventa pagine e pagine di
class Car:
List<Car> LoadByManufacturerId(id);
List<Car> LoadByModelId(id);
List<Car> LoadByCountryId(id);
List<Car> LoadByCityId(id);
Car LoadByChassis(chassis);
Car LoadById(id);
Car LoadByCountryIdAndChassis(countryId, chassis);
Car LoadByPersonIdAndIndex(personId, index);
Come sempre, ogni volta che qualcuno deve fare una query con un nuovo parametro, viene creato un nuovo metodo, ma questo è solo metà del problema: molte volte le persone non prendono il tempo di guardare il codice prima di crearne uno (la documentazione è inesistente) e finisce per creare più versioni della query con lo stesso nome, duplicando il codice tutt'intorno.
Siamo in un progetto C #, ma molti sviluppatori non comprendono molto LINQ oltre il basic from s in tablename where blabla select s
, quindi qual è il modo migliore per ridefinire questo pattern in qualcosa che non è così incline a questo tipo di problemi con minimo attrito?