2009-04-21 5 views
0

J'essaie de récupérer une seule entité à partir d'une requête Linq2Sql, mais je n'arrive pas à trouver la «jolie» façon de le faire. Voici ce que j'ai trouvé qui fonctionne:Sélection d'un seul élément avec la requête linq2sql

var states = from state in dc.States where state.Id == j.StateId select state; 
State s = states.ToList<State>().ToList()[0]; 

J'espère que ce n'est pas la meilleure façon d'obtenir l'entité. :-P

Quelqu'un at-il une meilleure solution?

Merci d'avance!

--J

Répondre

4

essayez ceci:

int stateID = getTheStateIDToLookup();  
State state = dc.States.SingleOrDefault(s => s.StateID == stateID); 
+1

J'adore cette communauté. Vous êtes top les gars. –

3
var s = dc.States 
    .SingleOrDefault(st => st.Id == j.StateId); 

Gardez à l'esprit que cela exige que par un seul état qui correspond à vos critères, ce qui est probablement vrai dans votre cas. Ou vous pouvez utiliser:

var s = dc.States 
    .FirstOrDefault(st => st.Id == j.StateId); 

Ou vous pouvez vous débarrasser de la OrDefault comme si vous savez qu'il ya un état qui correspond à vos critères:

var s = dc.States 
    .Single(st => st.Id == j.StateId); 
Questions connexes