2016-11-02 2 views

Répondre

3

Si vous êtes sûr que la requête vous donnera exactement un résultat de ligne, utilisez la méthode .Single. Il va jeter un eror si votre requête résultant zéro ou plus d'un résultat.

var us = from user in conteks.Tabel_User 
     where user.user_id == userID 
     select user 

var singleUser = us.Single(); 

//get name, ssn, etc 
var name = singleUser.Name; 
var ssn = singleUser.Ssn; 

Je vais vous expliquer chaque méthode mentionnée ici.

  • Single(). Il vous donnera la ligne de votre requête de ligne unique. Si votre requête aboutissant à zéro ou plus d'une ligne, alors il va lancer une erreur.
  • SingleOrDefault(). Il vous donnera la ligne de votre requête de ligne unique. Si votre requête aboutissant à zéro lignes, il vous donnera par défaut du type, null pour le type de référence. Et si votre requête résultant en plus d'une ligne, il va lancer une erreur.
  • First(). Il vous donnera la première ligne si votre requête, bien sûr si vous l'appliquez à une requête à une seule ligne, alors il retournera cette ligne. Si votre requête aboutissant ligne zéro, alors il vous donnera une erreur.
  • FirstOrDefault(). La méthode la plus sûre. Il vous donnera la première ligne si votre requête retourne la (les) ligne (s), et vous donnera la valeur par défaut du type (null pour le type de référence) si votre requête renvoie zéro lignes.
+0

Merci kak cela fonctionne – Student

0

Vous pouvez essayer comme indiqué ci-dessous.

Remarque: Si vous considérez à propos de la performance, alors la méthode FirstOrDefault() est la meilleure.

var us = from user in conteks.Tabel_User 
       where user.user_id == userID 
       select user 

var userObject = us.FirstOrDefault(); 

Puis:

var firsName = userObject.FirstName; 
var lastName = userObject.LastName; 

.....

0

Tout comme ce d'extraction

var user = us.SingleOrDeafult(); 

if(user != null) 
{ 
    var fn = user.firstName; 
} 
+0

Au lieu de 'if', vous pouvez utiliser l'opérateur null-propogation:' var fn = user? .firstName; ' –

0
var us= (from user in conteks.Tabel_User 
       where user.user_id == userID 
       select user).FirstOrDefault(); 

vous donnera l'objet utilisateur et vous pouvez sélectionner chaque colonne par us.<columnName>, vous devrez peut-être nu Vérifiez avant d'accéder aux propriétés de l'objet s'il y a une possibilité d'aucun enregistrement trouvé pour les critères de serar.