2014-01-16 6 views
-2

В приведенном ниже коде будут отобраны все строки в таблице, но я хочу только выбрать идентификатор строки, которую я передаю в метод. Я пробовал несколько способов и теперь начинаю все видеть, могу ли я заставить его работать. Любая помощь приветствуется.Предложение WHERE с использованием LINQ

Вот мой код:

[WebMethod] 
public static string getProjectByID(int id) 
{ 
    using (dbPSREntities4 myEntities = new dbPSREntities4()) 
    { 
     var thisProject = myEntities.tbProjects.ToList(); 

     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     var json = serializer.Serialize(thisProject); 

     return json; 
    } 
} 

ответ

5

Вы хотите использовать метод Where для фильтрации данных:

var thisProject = myEntities.tbProjects.Where(x => x.yourIdColumn == id).ToList(); 
+1

SingleOrDefault, вероятно, будет лучше использовать метод здесь – Joe

+1

Предполагая, что идентификатор уникален, что можно подумать, что было бы ... –

3

где положение довольно просто здесь. Вам просто нужно использовать выражение лямбда, чтобы указать условие, в котором вы согласны. Если вы не знакомы с ними, более подробную информацию можно найти здесь. http://msdn.microsoft.com/en-us/library/bb397687.aspx Основы: у вас есть имя переменной, за которым следует =>, с правой стороны вы можете делать то, что хотите, с переменной, и мне легче всего думать об этом как работает как foreach, где имя переменной, которую вы объявляете, является переменной итерации (элемент в списке).

var thisProject = myEntities.tbProjects.Where(x => x.Id == id).ToList(); 
+0

я думаю, что это может быть яснее ОП, если вы следовали формат его бит кода и сделал параметр совпадающим с «id», на который он ссылался. просто мои мысли ... –

+0

@jimtollan да, это простое изменение. Не слишком внимательно смотрел на его код, просто потянул эту линию и добавил туда. – evanmcdonnal

+0

+1 для реактивного взаимодействия :-). плюс добавьте приятное небольшое объяснение ... –

Смежные вопросы