我已经通过函数导入将存储过程(请参阅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?
答案 0 :(得分:2)
看起来你只想要这样的东西:
return _DataContext.GetPubsDistinctMonthYears(pubType, pubId)
.Select(x => x.Value);
如果有任何空值,那将会爆炸。要忽略空值,可以使用:
return _DataContext.GetPubsDistinctMonthYears(pubType, pubId)
.Where(x => x.HasValue)
.Select(x => x.Value);