1

order by句でisnullを使用して、最新の返信日、またはnullの場合は投稿日でアイテムを注文するSQLストアドプロシージャがあります。

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

linqdatasource の orderby 句でそれを機能させようとしていますが、まだ役に立ちません: 例:

そこでは isnull が有効ではないことはわかっていますが、何が機能するかはまだわかりません。??を試してみました オペレーターも。何か案は?

4

2 に答える 2

4

この linq..err...link を確認してください

――補遺

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 に答える