Как я могу вернуть пустое IEnumerable?

#asp.net-mvc-3 #fluent-nhibernate #ienumerable

#asp.net-mvc-3 #свободно-nhibernate #ienumerable

Вопрос:

Привет, ребята!

Мое приложение выполняет запрос, подобный этому:

         public Order GetOrderByPerson(Order order, Person person)
        {
             return Repository.All()
                .Where( x => x.Order == order )
                .Where( y => y.envolvedPerson == person )
                .Single();
        };
  

И когда элементов нет, возвращается ошибка:

Последовательность не содержит элементов

Нормально ли возвращать значение null, как я могу предотвратить эту ошибку?

Tks.

Ответ №1:

сделать

 return Repository.All()
                .Where( x => x.Order == order )
                .Where( y => y.envolvedPerson == person )
                .SingleOrDefault();
  

и проверьте, является ли его значение null в вызывающем методе

Ответ №2:

Вы можете проверить !Respository.Any(), чтобы проверить наличие перечислимого Null или Count равно нулю.