Использование LINQ2Sql для проверки пользователей - PullRequest
1 голос
/ 28 января 2009

Привет, я использую 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);

но оба возвращают экземпляр таблицы USER из Datacontext (два вместо одного), я хочу сопоставить их в лямбда-выражении, например, если "этот userID соответствует passID"

Спасибо!

Ответы [ 3 ]

1 голос
/ 28 января 2009

Вам нужно использовать предложение Where, чтобы выбрать пользователя. Я не уверен, что я использовал LINQ-2-SQL, но я бы сделал это так:

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

Я надеюсь, что код правильный, у меня нет доступа к intellisense в проекте LINQ для проверки.

1 голос
/ 28 января 2009

Почему бы не сделать это?

var doesUserExist=db.User.Any(p => p.UserID.Equals(userID) && p.Password.Equals(password));
1 голос
/ 28 января 2009
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...