LINQ检查存在用户名然后获取该用户的ID

时间:2014-04-01 15:54:51

标签: entity-framework asp.net-mvc-4

我有一个帐户表:

    table Account
    (
    UserId int identity(1, 1),
    UserName nvarchar(20) not null unique,
    Password nvarchar(20) not null
    )

使用LINQ。我是否可以检查帐户是否存在UserName。然后为该帐户获取UserId即可 (我使用ASP MVC 4和实体框架)

2 个答案:

答案 0 :(得分:3)

var user = Context.Accounts.SinlgeOrDefault(user => user.UserName=="yourValue");
if(user!=null)
{
// you can safely access the user properties here
}

答案 1 :(得分:3)

当使用Linq从DB查询时,我更喜欢使用查询表达式,它比SQL符号更接近SQL符号。

鉴于您拥有username

try {
    int userId = (from x in context.Account
                   where x.UserName == username
                   select x.UserId).SingleOrDefault());

    if (userId > 0){
        // user exists
    }
    else {
        // user does not exist
    }
}
catch(InvalidOperationException ex){
    // has more than one element
}