2016-06-07 3 views
-1

Я не могу понять синтаксис использования предложения if в инструкции LINQ to SQL.Оператор if в LINQ to SQL

Оператор работает, получая уникальные значения из столбца называется Staff_No

var staffNames = sql.Staff_Time_TBLs.Select(item => 
item.Staff_No).Distinct().ToList(); 

Я пытаюсь получить уникальные значения из Staff_No, когда данные равно как строка из колонки под названием Section. Я знаю, что это неправильно, но я надеюсь, что вы можете получить сумасшедший от того, что я пытался сделать на C#?

var staffNames = sql.Staff_Time_TBLs.Select(item => 
if item.Section == "Level 1" then item.Staff_No).Distinct().ToList(); 
+2

Использование Где: sql.Staff_Time_TBLs.Where (item => item.Section == "Уровень 1"). Выберите (item => item.Staff_No) .Distinct(). ToList(); – Evk

+0

Спасибо, что нашли время ответить всем. Это решило мою проблему. – KyloRen

ответ

7

Попробуйте использовать Where метод:

var staffNames = sql.Staff_Time_TBLs 
    .Where(item => item.Section == "Level 1") 
    .Select(item => item.Staff_No) 
    .Distinct() 
    .ToList(); 
+0

Спасибо, что сделал. Проголосуйте за то, что нашли время. Приветствия. – KyloRen

3

я не имею Visual Studio прямо сейчас, но я думаю, что для Вас сделать это с помощью Where заявление:

var staffNames = sql.Staff_Time_TBLs.Where(item => item.Section == "Level 1").Select(item => item.Staff_No).Distinct().ToList(); 
+0

Спасибо, что сделал. Проголосуйте за то, что нашли время. Приветствия. – KyloRen

1

You попробуйте Where

var staffNames = sql.Staff_Time_TBLs 
        .Where(wr=>wr.Section == "Level 1") 
        .Select(item => item.Staff_No) 
        .Distinct() 
        .ToList(); 
+0

До голосования за то, что нашли время. Все ответы работали на меня. – KyloRen