ObjectResultв IEnumerable <DateTime>? - PullRequest
0 голосов
/ 23 мая 2011

Я прикрепил хранимую процедуру (см. мой предыдущий вопрос с кодом процедуры ) к моей модели Entity Framework с импортом функции, выбрав «Scalars: DateTime», чтобы получить коллекцию DateTimes в качестве возврата тип. Я называю это в моем хранилище:

return _DataContext.GetPubsDistinctMonthYears(pubType, pubId).AsEnumerable();

Мне нужен метод репозитория для возврата IEnumerable; однако, функция возвращает ObjectResult<Nullable<DateTime> (с правильными значениями DateTime в нем), и если я приведу ее как IEnumerable, результат будет просто нулевым.

«Safe cast» также не работает:

return _DataContext.GetPubsDistinctMonthYears(pubType, pubId) as IEnumerable<DateTIme>;

ВОПРОС
Так что мне нужно сделать либо / как в хранимой процедуре, так и в хранилище, чтобы получить мой IEnumerable ??

1 Ответ

2 голосов
/ 23 мая 2011

Похоже, вы просто хотите что-то вроде:

return _DataContext.GetPubsDistinctMonthYears(pubType, pubId)
                   .Select(x => x.Value);

Это пойдет не так, если есть какие-либо нулевые значения.Чтобы игнорировать нулевые значения, вы можете использовать:

return _DataContext.GetPubsDistinctMonthYears(pubType, pubId)
                   .Where(x => x.HasValue)
                   .Select(x => x.Value);
...