使用LINQ2Sql验证用户

时间:2009-01-27 21:19:04

标签: .net sql linq linq-to-sql lambda

您好我在使用Linq检查两个用户字段是否对应于SQL表中的唯一用户注册表,例如

UID:userID PIN:passID

因此字段必须来自单个用户,我试图这样做:

 public bool AutentificacionUsuario(string userID , string password passID)
    {
        USER _userID = _db.USER.FirstOrDefault(uid => uid.siglas == userID);
        USER _passID = _db.USER.FirstOrDefault(pwd => pwd.codigousuario == passID);

但是两者都从Datacontext返回一个USER Table实例(两个而不是一个),我想在lambda表达式中匹配它们,就好像“this userID match passID”

谢谢!

3 个答案:

答案 0 :(得分:1)

var usr = db.Users.From(uid => uid.dsiglas == userID && 
            uid.codigousuario == passID).FirstOrDefault();

if(usr != null)
   //Authenticate user here

var usr = (from u in db.Users
          where u.dsiglas == userID && uid.codigousuario == passID
          select u).FirstOrDefault()

if(usr != null)
    //Authenticate user here

答案 1 :(得分:1)

您需要使用Where子句来选择用户。我不确定LINQ-2-SQL是否是我一直在使用的,但我会这样做:

USER u = (
 from u in _db.USER
 where u.uid == userID && u.pwd == password
 select u
).FirstOrDefault()

我希望代码是正确的,我现在无法访问LINQ项目上的intellisense进行检查。

答案 2 :(得分:1)

为什么不这样做?

var doesUserExist=db.User.Any(p => p.UserID.Equals(userID) && p.Password.Equals(password));