LINQ Query - Получить следующую строку с соответствующими параметрами - PullRequest
2 голосов
/ 16 декабря 2011

У меня есть таблица базы данных со следующей схемой:

id 
screenshot 
language 
projects_ID

Мне нужно написать запрос LINQ, который, учитывая «id», «projects_ID» и «language», вернет «id» следующей строки с соответствующими «projects_ID» и «language» .

На английском мой запрос будет:

выберите следующий 'id' из скриншотов после текущего 'id', где 'projects_ID' == текущий 'projects_ID' и язык == текущий 'language'

Возможно ли это сделать через LINQ?

Спасибо.

1 Ответ

3 голосов
/ 16 декабря 2011

Звучит так, как вы, вероятно, хотите:

var next = table.Where(item => item.id > lastId &&
                               item.projects_ID == projects_ID &&
                               item.language == language)
                .OrderBy(item => item.id)
                .FirstOrDefault();

Или как выражение запроса:

var next = (from item in table
            where item.id > lastId &&
                  item.projects_ID == projects_ID &&
                  item.language == language
            orderby item.id
            select item).FirstOrDefault();

Результатом будет null, если совпадений нет (например, если выуже смотрю на последнее удостоверение личности).Это предполагает, что «следующий» означает «соответствующий элемент с наименьшим идентификатором, превышающим текущий».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...