我怎么能用linq2sql来做...?

时间:2011-03-14 21:03:51

标签: c# linq-to-sql

我有一个表用户。用户具有列评级。如何使用linq2sql获取有关用户位置的信息?我想要的方法如下:

  

var userPlace =   GetUserPlaceById(用户id);

表用户可能包含数千名用户。


对不起伙计们。用户DOESNT包含位置列。真实的例子:评级是国际象棋评级。如果你有高评价,那么你在第一名。如果你的评分较低,那么你就在最后一个位置。

4 个答案:

答案 0 :(得分:3)

你的意思是这样吗?

int userRating = users.Single(user => user.Id = userId).Rating;
int userPlace = users.Where(user => user.Rating < userRating).Count() + 1;

答案 1 :(得分:1)

  

我有一个表用户。用户具有列评级。如何使用linq2sql获取有关用户位置的信息?

我不确定“userPlace”是什么,但假设它是该表中的一列......

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

请注意,如果找不到匹配项,调用.First()将抛出异常,因此如果您希望有时此用户不存在,请使用FirstOrDefault,检查null,然后获取UserPlace属性。

答案 2 :(得分:0)

你会使用类似的东西:

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

    return users.Single(user => user.Id == userId).Place;
}

答案 3 :(得分:0)

你可以这样做:

var userPlace = _db.Users.Where(x => x.UserId == userId).Select(x => x.Place).SingleOrDefault();
相关问题