ObjectResult <可为空<日期时间>&GT;到IEnumerable <datetime>?</datetime> </nullable <datetime>

时间:2011-05-23 09:37:59

标签: sql-server entity-framework stored-procedures ienumerable

我已经通过函数导入将存储过程(请参阅my previous question w/proc code)附加到我的Entity Framework模型,选择“Scalars:DateTime”以获取DateTimes的集合作为返回类型。我在我的存储库中调用它:

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

我需要存储库方法来返回IEnumerable;但是,该函数返回ObjectResult<Nullable<DateTime>(其中包含正确的DateTime值),如果我将其转换为IEnumerable,则结果为null。

“安全演员”也不起作用:

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

问题
那么我需要在存储过程和存储库中做什么/两者来获取我的IEnumerable?

1 个答案:

答案 0 :(得分:2)

看起来你只想要这样的东西:

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

如果有任何空值,那将会爆炸。要忽略空值,可以使用:

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