ADO.Net Entity Framework / Linq - PullRequest
       8

ADO.Net Entity Framework / Linq

0 голосов
/ 03 июня 2009

Я смотрю на изучение немного больше ASP.Net MVC и Linq To Entity.

Я работаю над проектом, использующим это, и у меня проблема со следующей строкой кода

ViewData["ProjectName"] = db.Projects.FirstOrDefault(p => p.ProjectId  == task.ProjectId).ProjectName;

Работает нормально, когда запись существует, но если записи не существует, возникает ошибка, потому что я пытаюсь проверить свойство ProjectName нулевого объекта. Я понимаю, что могу привести объект к переменной и проверить, имеет ли он значение null, прежде чем сохранять ProjectName в ViewData, но мне просто интересно, есть ли более аккуратный способ сделать это?

Я знаю, что это простой вопрос, и я мог бы просто обойти его, но если есть лучший способ сделать это, было бы полезно знать.

Спасибо

Gavin

1 Ответ

1 голос
/ 03 июня 2009
var project = db.Projects.FirstOrDefault(p => p.ProjectId == task.ProjectId);
if (project != null)
{
  ViewData["ProjectName"] = project.ProjectName;
}
else
{
  //........
}

Не требуется литье.

Или вообще пропустите условие и сделайте следующее:

ViewData["ProjectName"] = db.Projects.Where(p => p.ProjectId == task.ProjectId)
                           .Select(p => p.ProjectName).FirstOrDefault();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...