У меня есть список, как это:Как сделать SELECT UNIQUE с LINQ?
Red
Red
Brown
Yellow
Green
Green
Brown
Red
Orange
Я пытаюсь сделать ВЫБЕРИТЕ UNIQUE с помощью LINQ, то есть я хочу
Red
Brown
Yellow
Green
Orange
var uniqueColors = from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name;
Затем я изменил это
var uniqueColors = from dbo in database.MainTable
where dbo.Property == true
select dbo.Color.Name.Distinct();
с нет успеха. Первый select
получает ВСЕ цвета, поэтому как мне изменить его, чтобы получить уникальные значения?
Если есть лучший способ структурирования этого запроса, более чем счастлив пройти этот маршрут.
Как мне отредактировать его, чтобы я мог иметь .OrderBy («имя столбца»), то есть в алфавитном порядке по имени цвета, так что свойство name?
Я получаю сообщение об ошибке:
Аргументы типа не могут быть выведены из эксплуатации. Попробуйте явно указать аргументы типа.
Спасибо, это правильный ответ. Может кто-нибудь объяснить, что входит в параметры .OrderBy(). У вас есть имя => имя. Это имя происходит от имени столбца в БД? Поскольку у нас есть 'dbo.Color.Name', то просто' name => name', который подсказывает мне, что это не имя столбца? Bizarre также сортирует правильно, если я просто изменяю это на. .OrderBy (a => a) ' – baron
Имя переменной не имеет значения. Это просто {объект передан функции} => {объект, используемый для сортировки}. Поскольку мы уже сделали Select, единственное, что сортируется в сортировке, это имена. –
Спасибо @JamesCurran, ваше решение очень помогло мне. – Ron