1

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

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

我试图让它在 linqdatasource 的 orderby 子句中工作,但无济于事:示例:

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

4

2 回答 2

4

检查这个linq ..err ...链接

- 附录

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

在你的情况下:

OrderBy(p => p.LatestReplyDate == null ? p.LatestReplyDate : p.TopicDatePosted); 
于 2009-10-19T20:17:45.200 回答
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> 

这很明显,我不知道我是怎么错过的。这就是人生。感谢您为我指明正确的方向。

于 2009-10-22T16:08:40.667 回答