Una query LINQ distinta funzionante in C #

Come ho detto lunedì e nella mia recensione di Visual Studio 2008, ho lottato con i punti più fini delle query LINQ. In un commento di talkback alla mia recensione, "CSharper" mi ha indicato una soluzione per trovare l'equivalente LINQ di una query SQL " SELECT DISTINCT ": attaccare una chiamata al metodo LINQ .Distinct () alla query, che deve essere racchiusa tra parentesi.

Ha funzionato, ma ha distrutto l'ordinamento creato da una precedente clausola orderby . Ovviamente, ho anche dovuto imparare a usare il metodo LINQ .OrderBy () in modo da poter applicare l'ordinamento dopo il sift. È stato un po 'più difficile, poiché .OrderBy () accetta un'espressione lambda e non avevo ancora familiarità con la nuova sintassi C #.

Tuttavia, ho funzionato. Non è bello, ma questa è davvero la versione 1.0 di LINQ.

var qAV = (da ai in db.AppInfos entra in acai in db.AppCatAIs su ai.Prodid è uguale a acai.Prodid entra in ac in db.AppCategories su acai.acatid è uguale a ac.acatid dove ac.Category == category1 || ac.Category == categoria2 seleziona ai) .Distinct () .OrderBy (n => n.ProductName);