如何在 linqdatasource orderby 中使用 isnull 类型决策?

发布于 2024-08-08 10:50:52 字数 294 浏览 2 评论 0原文

我有一个 sql 存储过程,它在 order by 子句中使用 isnull 来按最新回复日期排序项目,或者如果为 null,则按发布日期排序:

示例: ORDER BY isnull(rtb.LatestReplyDate,CB_TOPIC_DATE_POSTED) DESC

我试图让它在 linqdatasource 的 orderby 子句中工作,但还没有成功: 例子:

我知道 isnull 在那里无效,但我还没有弄清楚什么是有效的(如果有的话)。我试过了??运营商也是如此。有什么想法吗?

I have a sql stored procedure that uses isnull in the order by clause to order items by the latest reply date, or if that is null, by the posting date:

Example:
ORDER BY isnull(rtb.LatestReplyDate,CB_TOPIC_DATE_POSTED) DESC

I am trying to get that to work in the orderby clause of a linqdatasource, to no avail yet:
Example:

I know isnull isn't valid there, but I have yet to figure out what would work, if anything. I tried the ?? operator as well. Any ideas?

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

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

发布评论

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

评论(2

老子叫无熙 2024-08-15 10:50:52

检查此 linq..err...link

--附录

OrderBy(p => p.<YourCompareVariant> == null ? p.<IfNull> :  p.<IfNotNull>); 

在您的情况下:

OrderBy(p => p.LatestReplyDate == null ? p.LatestReplyDate : p.TopicDatePosted); 

Check this linq..err...link

--Addendum

OrderBy(p => p.<YourCompareVariant> == null ? p.<IfNull> :  p.<IfNotNull>); 

In your case:

OrderBy(p => p.LatestReplyDate == null ? p.LatestReplyDate : p.TopicDatePosted); 
我喜欢麦丽素 2024-08-15 10:50:52

@Xencor,这就是有效的:

<asp:LinqDataSource OrderBy="(CB_DATE_LATEST_REPLY != null ? CB_DATE_LATEST_REPLY : CB_TOPIC_DATE_POSTED) desc" Select="new (CB_TOPIC_ID, CB_TOPIC_CAT_ID, CB_TOPIC_TITLE, CB_TOPIC_DATE_POSTED, CB_TOPIC_REPLY_COUNT, CB_DATE_LATEST_REPLY, LU_CB_CATEGORy, VIEW_ALL_USER)" TableName="CB_TOPICs" > </asp:LinqDataSource> 

这是显而易见的,我不知道我是如何错过的。这就是生活。感谢您为我指明了正确的方向。

@Xencor, here's what worked:

<asp:LinqDataSource OrderBy="(CB_DATE_LATEST_REPLY != null ? CB_DATE_LATEST_REPLY : CB_TOPIC_DATE_POSTED) desc" Select="new (CB_TOPIC_ID, CB_TOPIC_CAT_ID, CB_TOPIC_TITLE, CB_TOPIC_DATE_POSTED, CB_TOPIC_REPLY_COUNT, CB_DATE_LATEST_REPLY, LU_CB_CATEGORy, VIEW_ALL_USER)" TableName="CB_TOPICs" > </asp:LinqDataSource> 

Which is obvious, I don't know how I managed to miss that. Such is life. Thanks for pointing me in right direction.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文