If I have a Publisher table that has many Books, and each Book can have many Authors, how do I get a list of distinct Authors for a Publisher? In SQL you would just join all the tables, select the Author, and use SELECT DISTINCT. Using LINQ I end up with an IEnumerable(Of EntitySet(of Author)):
Dim temp = From p in Publishers Select (From b in p.Books Select b.Author)
and this still doesn't address duplicate Authors.
Is there a way to get a flat list of Authors, ungrouped from the Books, in a single query? I know I could loop through the sets and create one list and use Distinct on that. I was curious if it could be done in one statement.
Here's the original query.
And here is the same query improved by SelectMany to flatten the hierarchy.
For more information: MSDN