0

我使用函数import将一个存储过程(请参阅my previous question w/proc code)附加到我的实体框架模型中,选择“Scalars:DateTime”以获取DateTimes的集合作为返回类型。我打电话到我的仓库中:ObjectResult <Nullable <DateTime>> to IEnumerable <DateTime>?

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

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

“平安投”不工作之一:

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

问题
所以我需要什么/无论是在存储过程和存储库来让我的IEnumerable做要么?

+0

请编辑你的问题更实际的代码 - ''返回='永远不会有效。 – 2011-05-23 09:39:15

回答

1

看起来你只是想是这样的:

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

,如果有任何空值,虽然这会爆炸。要忽略空值,你可以使用:

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

。其中(x => x.HasValue)是票据。但请注意:我仍然需要AsEnumerable(); – Faust 2011-05-23 10:07:09

+0

@Faust:如果'GetPubsDistinctMonthYears'返回'ObjectResult ',你不应该需要'AsEnumerable',因为它实现了'IEnumerable '。当你没有调用AsEnumerable时出了什么问题? – 2011-05-23 10:14:19

+0

我认为你是对的。我必须经过错误测试。 – Faust 2011-05-23 10:16:52

相关问题