2010-05-18 10 views
2

Voici ma méthode référentiel qui retourne UserId,[Linq-To-Sql] Comment retourner deux valeurs de différents types de données?

public IQueryable<int> getLoginStatus(string emailId, string password) 
{ 
    return (from r in taxidb.Registrations 
      where (r.EmailId == emailId && r.Password == password) 
      select r.UserId); 
} 

Comment retourner UserName qui est une chaîne avec UserId ... Toute suggestion?

EDIT:

J'ai essayé il fonctionne, mais comment obtenir si le résultat de la requête contient des enregistrements ou non,

public RegistrationBO getLoginStatus(string emailId, string password) 
    { 
     return (from r in taxidb.Registrations 
       where (r.EmailId == emailId && r.Password == password) 
       select new RegistrationBO() 
       { 
        UserId = r.UserId, 
        UserName = r.UserName 
       }).FirstOrDefault(); 
    } 

Répondre

3

Vous devez définir une classe pour contenir le résultat puis utilisez ceci:

return (from r in taxidb.Registrations 
     where (r.EmailId == emailId && r.Password == password) 
     select new SomeClass { r.UserId, r.UserName }); 

semble inutile que ... SLaks est juste que vous pouvez simplement retourner à l'utilisateur:

return (from r in taxidb.Registrations 
     where (r.EmailId == emailId && r.Password == password) 
     select r); 
+0

regardez ma partie modifiée ... –

+1

@Pandiya Chendur: S'il n'y a pas de lignes correspondantes, alors FirstOrDefault renvoie 'null'. –

+0

devrais-je utiliser 'RegistrationBO' ou' IQueryable '... Quelle est la différence entre les deux? –

1

Vous devez retourner l'ensemble des objets de l'utilisateur, par le changement de la select clause à select r et en changeant le type de retour à IQueryable<User>.

+0

+1 : Je pense que c'est une suggestion judicieuse. Pourquoi a-t-il eu une downvote? –

+0

Pourquoi était-ce downvoted? – SLaks

+0

@Slaks +1 pour cette suggestion .. –