2012-02-06 2 views
1

Цель:LINQ больше, чем дата запроса (asp.net)

  1. порядок записи по 'датой_начала'
  2. выбрать первый рекорд
  3. получить идентификатор записи вернулся

Когда Я пытаюсь заказывать все события 'start_date' и выбрать первую запись возвращается ...

примеры кода:

 var aa = (from a in db.Events 
       where a.start_date >= System.DateTime.Now.Date 
       orderby a.start_date ascending 
       select a).FirstOrDefault(); 

     Response.Write(aa.id.ToString()); 

... Я бросаться "Ссылка на объект не указывает на экземпляр объекта. "ошибка

+0

ли какой-либо случайно start_date поле обнуляемого? В какой строке именно вы получаете исключение? – TheBoyan

+0

Это, вероятно, означает, что не было никаких результатов – SLaks

ответ

1

FirstOrDefault() возвращает нулевое значение, если ваш IQuerable возвращает пустую коллекцию -.. Вот почему вы получите это исключение Похоже, что нет ни одного события, которое имеет дату начала больше DateTime.Now.Date

+0

Господа, вы правы. Я смотрел на это более 3 часов и программировал достаточно долго, чтобы это было неловко. Я подтвердил, что 1 запись, которую я искал, была датирована 2/13/2002. Я исправил это до 2012 года. Однако теперь я возвращаю еще одну ошибку. Я устраню это, и если я не смогу его получить, я отправлю новый вопрос. Спасибо, парни. –

1

ли дб == NULL?

Если нет никаких результатов, FirstOrDefault() также возвращает нулевой!

Смежные вопросы