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

时间:2009-10-19 19:54:48

标签: linq sql-order-by isnull

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

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

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

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

2 个答案:

答案 0 :(得分:4)

Check this linq..err...link

- 附录

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> 

这是显而易见的,我不知道我是如何设法错过的。这就是人生。谢谢你指点我正确的方向。