2010-09-19 6 views
2
var x = from y in db.table 
      where y.member_id == 1 
      select new { y.member_id }; 

cette instruction ne doit renvoyer qu'un seul enregistrement. & je veux récupérer cette valeur l'instruction renvoie dans un format de chaîne.comment renvoyer une valeur à partir d'une instruction LINQ

comme

string m = x; 

Comment puis-je faire ?!

Répondre

3
var x = (from y in db.table 
     where y.member_id == 1 
     select new { y.member_id }).FirstOrDefault(); 

Il va revenir null si l'utilisateur n'existait pas.

Vous voudrez probablement vous débarrasser de la partie new { } si y.member_id est supposé être une chaîne.

var x = (from y in db.table 
     where y.member_id == 1 
     select y.member_id).FirstOrDefault(); 
0

Vous pouvez utiliser:

string m = db.table.where(member=>member.member_id == 1).FirstOrDefault().member_id.ToString(); 

, à condition 'table' est un POCO ou il peut soutenir l'accès à la propriété.

0

Vous pouvez utiliser take 1 pour limiter le nombre d'éléments renvoyés à un, mais vous récupérerez néanmoins une collection de la requête (dont vous devrez extraire le premier élément en utilisant, par exemple, .First()).

Mais pourquoi ne pas simplement utiliser

val element = db.table.First(x => x.member_id == 1); 

pour trouver l'élément qui satisfait votre prédicat?

0

Si vous êtes sûr que l'instruction ne doit renvoyer qu'un seul résultat, au lieu d'utiliser .First/.FirstOrDefault, vous devez utiliser .Single/.SingleOrDefault afin d'affirmer qu'il n'y aura qu'un seul résultat. Si la requête renvoie plus d'un élément, ce serait alors une situation d'erreur. Cela pourrait être utile.

Questions connexes