Выбор одного элемента с помощью запроса linq2sql - PullRequest
0 голосов
/ 21 апреля 2009

Я пытаюсь извлечь одну сущность из запроса Linq2Sql, но у меня возникают проблемы с поиском «симпатичного» способа сделать это. Вот что я нашел, что работает:

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

Я надеюсь, что это не лучший способ получить сущность. : -Р

У кого-нибудь есть лучшее решение?

Заранее спасибо!

- J

Ответы [ 2 ]

4 голосов
/ 21 апреля 2009

попробуйте это:

int stateID = getTheStateIDToLookup();    
State state = dc.States.SingleOrDefault(s => s.StateID == stateID);
3 голосов
/ 21 апреля 2009
var s = dc.States
    .SingleOrDefault(st => st.Id == j.StateId);

Также имейте в виду, что для этого требуется наличие только одного состояния, которое соответствует вашим критериям, что, вероятно, верно в вашем случае. Или вы можете использовать:

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

Или вы можете избавиться от OrDefault, например, если вы ЗНАЕТЕ, что существует состояние, соответствующее вашим критериям:

var s = dc.States
    .Single(st => st.Id == j.StateId);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...