我有一个sql存储过程,它在order by子句中使用isnull按照最新的回复日期对项目进行排序,或者如果为null,则按发布日期排序:
实施例: ORDER BY isnull(rtb.LatestReplyDate,CB_TOPIC_DATE_POSTED)DESC
我试图让它在linqdatasource的orderby子句中工作,但无济于事: 例:
我知道isnull在那里无效,但我还没弄明白什么会起作用,如果有的话。我试过了?运营商也是如此。有什么想法吗?
答案 0 :(得分:4)
- 附录
OrderBy(p => p.<YourCompareVariant> == null ? p.<IfNull> : p.<IfNotNull>);
在你的情况下:
OrderBy(p => p.LatestReplyDate == null ? p.LatestReplyDate : p.TopicDatePosted);
答案 1 :(得分:1)
@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>
这是显而易见的,我不知道我是如何设法错过的。这就是人生。谢谢你指点我正确的方向。