ObjectResult<可空>到 IEnumerable

发布于 2024-11-09 11:19:59 字数 719 浏览 1 评论 0 原文

我附加了一个存储过程(请参阅 我之前的问题 w/proc 代码)通过函数导入到我的实体框架模型,选择“标量:DateTime”以获取 DateTimes 集合作为返回类型。我在我的存储库中调用它:

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

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

“安全投射”也不起作用:

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

问题
那么我需要在存储过程和存储库中执行什么操作才能获取 IEnumerable?

I've attached a stored procedure (see my previous question w/proc code) to my Entity Framework model with function import, selecting "Scalars: DateTime" to get a collection of DateTimes as the return type. I am calling that in my repository:

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

I need the repository method to return IEnumerable; however, the function is returning ObjectResult<Nullable<DateTime> (with the correct DateTime values in it), and if I cast it as IEnumerable, the result is just null.

"Safe cast" doesn't work either:

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

QUESTION
So what do I need to do either/both in the stored procedure and the repository to get my IEnumerable??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你对谁都笑 2024-11-16 11:19:59

看起来您只想要类似的东西:

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

如果有任何空值,那将会很糟糕。要忽略空值,您可以使用:

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

It looks like you just want something like:

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

That will go bang if there are any null values though. To ignore null values, you could use:

return _DataContext.GetPubsDistinctMonthYears(pubType, pubId)
                   .Where(x => x.HasValue)
                   .Select(x => x.Value);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文