Как я могу сделать это, используя linq2sql ...? - PullRequest
1 голос
/ 15 марта 2011

У меня есть таблица Users. Пользователи имеют рейтинг в колонке. Как я могу получить информацию о месте пользователя, используя linq2sql? Я хочу такой метод:

var userPlace = GetUserPlaceById (идентификатор пользователя);

Таблица Users может содержать несколько тысяч пользователей.


Извините, ребята. Пользователи НЕ содержат столбец места. Реальный пример: рейтинг - это шахматный рейтинг. если у вас высокий рейтинг, то вы на 1-м месте. Если у вас ниже рейтинг, то вы на последнем месте.

Ответы [ 4 ]

3 голосов
/ 15 марта 2011

Вы имели в виду что-то подобное?

int userRating = users.Single(user => user.Id = userId).Rating;
int userPlace = users.Where(user => user.Rating < userRating).Count() + 1;
1 голос
/ 15 марта 2011

У меня есть таблица Users. Пользователи имеют рейтинг в колонке. Как я могу получить информацию о месте пользователя, используя linq2sql?

Я не уверен, что такое "userPlace", но предполагая, что это столбец в этой таблице ...

var userPlace = (from user in db.Users
                 where user.Id == userId
                 select user)
                 .First()
                 .UserPlace;

Имейте в виду, что вызов .First () вызовет исключение, если совпадение не найдено, поэтому, если вы ожидаете, что иногда этот пользователь не будет существовать, используйте FirstOrDefault, проверьте нулевое значение, а затем захватите свойство UserPlace.

0 голосов
/ 15 марта 2011

Вы можете сделать что-то вроде этого:

var userPlace = _db.Users.Where(x => x.UserId == userId).Select(x => x.Place).SingleOrDefault();
0 голосов
/ 15 марта 2011

Вы бы использовали что-то вроде:

string GetUserPlaceById(int userId)
{
    IQueryable<User> users = GetUsers(); // Get users queryable reference

    return users.Single(user => user.Id == userId).Place;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...