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