Я довольно новичок в linq и c #, поэтому извиняюсь, если я тупой.У меня есть запрос, который возвращает список информации о продуктах, ценах на эти продукты и категориях, в которых эти продукты основаны на некоторых переменных, переданных в:
var y = (from pl in dc.Products
join pr in dc.Prices
on pl.ID equals pr.ProductID
join c in dc.Categories
on pl.ID equals c.ProductID
where pr.Currency == Currency
&& (string.IsNullOrEmpty(Cat1) || c.Cat1 == Cat1)
&& (string.IsNullOrEmpty(Cat2) || c.Cat2 == Cat2)
&& (string.IsNullOrEmpty(Cat3) || c.Cat3 == Cat3)
&& (string.IsNullOrEmpty(Cat4) || c.Cat4 == Cat4)
&& (string.IsNullOrEmpty(Cat5) || c.Cat5 == Cat5)
select new {pl,pr,c});
Это отлично работает, насколько это возможно, но, скажем, дляНапример, строка y имеет ID = 1 и Cat1 = Foo, а другая строка имеет ID = 1 и Cat1 = Bar, тогда очевидно, что приведенный выше запрос вернет оба.Есть ли способ изменить этот запрос так, чтобы я мог возвращать только одну строку для каждого идентификатора.
Я гуглил это в течение примерно 2 часов и пробовал групповые байсы. Различить с IEqualityComparer и другие методы, которые янашел но безуспешно.Мое понимание недостаточно, и я буду благодарен за любую помощь!