Query LINQ Berbeda yang Bekerja di C #

Seperti yang saya sebutkan Senin dan dalam ulasan Visual Studio 2008 saya, saya telah berjuang dengan poin-poin penting dari kueri LINQ. Dalam komentar balik ke ulasan saya, "CSharper" mengarahkan saya pada satu solusi untuk menemukan LINQ yang setara dengan kueri " SELECT DISTINCT " SQL: tancapkan pada panggilan metode LINQ .Distinct () ke kueri, yang perlu disertakan dalam tanda kurung.

Itu berhasil, tetapi merusak urutan yang dibuat oleh klausa orderby sebelumnya . Jelas, saya juga harus belajar menggunakan metode LINQ .OrderBy () sehingga saya bisa menerapkan jenis setelah penyaringan. Itu sedikit lebih sulit, karena .OrderBy () menggunakan ekspresi lambda, dan saya belum terbiasa dengan sintaks C # yang baru.

Namun demikian, saya berhasil melakukannya. Ini tidak indah, tapi ini benar-benar versi 1.0 dari LINQ.

var qAV = (dari ai di db.AppInfos gabung acai di db.AppCatAIs di ai.Prodid sama dengan acai.Prodid gabung ac di db.AppCategories di acai.acatid sama dengan ac.acatid di mana ac.Category == category1 || ac.Category == kategori2 pilih ai) .Distinct () .OrderBy (n => n.ProductName);