У меня есть следующий класс EF, полученный из базы данных (упрощенной)
class Product
{
public string ProductId;
public string ProductName;
public string CategoryId;
public string CategoryName;
}
ProductId - это Основной ключ таблицы.
Для плохого дизайнерского решения, сделанного разработчиком БД (я не могу его изменить), у меня есть CategoryId и CategoryName в этой таблице.
Мне нужен DropDownList с (отличным) CategoryId как Значение и CategoryName как Текст. Поэтому я применил следующий код:
product.Select(m => new {m.CategoryId, m.CategoryName}).Distinct();
который логически должен создать анонимный объект с CategoryId и CategoryName в качестве свойств. Distinct() гарантирует отсутствие пары дубликатов (CategoryId, CategoryName).
Но на самом деле это не работает. Насколько я понял, Distinct() работает только тогда, когда в коллекции есть только одно поле, иначе оно просто игнорирует их... это правильно? Есть ли обходной путь? Спасибо!
UPDATE
Извините product есть:
List<Product> product = new List<Product>();
Я нашел альтернативный способ получить тот же результат, что и Distinct():
product.GroupBy(d => new {d.CategoryId, d.CategoryName})
.Select(m => new {m.Key.CategoryId, m.Key.CategoryName})