Come utilizzare decisione tipo IsNull in LinqDataSource orderby?
-
22-09-2019 - |
Domanda
Ho una stored procedure di SQL che utilizza IsNull nella clausola ORDER BY per ordinare gli elementi per l'ultima data risposta, o se questo è nulla, dalla data di registrazione:
Esempio: ORDER BY IsNull (rtb.LatestReplyDate, CB_TOPIC_DATE_POSTED) DESC
Sto cercando di convincere quello per funzionare nella clausola orderby di un LinqDataSource, senza alcun risultato ancora: Esempio:
Lo so isnull non è valido lì, ma devo ancora capire che cosa avrebbe funzionato, se non altro. Ho provato il ?? operatore pure. Tutte le idee?
Soluzione
- Addendum
OrderBy(p => p.<YourCompareVariant> == null ? p.<IfNull> : p.<IfNotNull>);
Nel tuo caso:
OrderBy(p => p.LatestReplyDate == null ? p.LatestReplyDate : p.TopicDatePosted);
Altri suggerimenti
@Xencor, ecco cosa ha funzionato:
<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>
Il che è ovvio, non so come abbia fatto a perdere questa. Così è la vita. Grazie per avermi nella giusta direzione.