2009-10-19 50 views
1

我有順序使用ISNULL by子句的最新回覆日期訂購物品,或SQL存儲過程,如果這是空,由發佈日期:如何在linqdatasource orderby中使用isnull類型決定?

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

我試圖獲取到的LinqDataSource的排序依據子句中工作,但無濟於事尚未: 例子:

我知道ISNULL是無效的,但我有如果有的話,還沒有弄清楚什麼會起作用。我試過了??運營商也是如此。有任何想法嗎?

回答

4

Check this linq..err...link

--Addendum

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

你的情況:

OrderBy(p => p.LatestReplyDate == null ? p.LatestReplyDate : p.TopicDatePosted); 
+0

我已經看到了,但它不完全是我正在尋找。我想知道是否有一種方法可以非常簡單地將isnull應用於聲明式linqdatasource,而不是在後面的代碼中以編程方式混淆。 – 2009-10-20 18:20:26

+0

@Michael請參閱編輯...是你正在尋找的線上的東西 – 2009-10-20 19:06:17

+0

正是我在找的東西。非常感謝 – Oppdal 2011-11-20 12:46:55

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> 

這是顯而易見的,我不不知道h我設法錯過了這個。這就是人生。感謝您指點我正確的方向。