您好我在使用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”
谢谢!
答案 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));