1

我有一個要求從表中獲取記錄。我想根據條件從數據庫中提取數據列。從表中選擇數據的邏輯

假設我有一個同樣代表數據庫表格的網格。這個網格在每個標題的標題中都有一個複選框。

如果對應於用戶ID複選框被選中,我一定要得到「用戶ID」列像這樣與它

1 
2 

如果用戶還檢查名稱,現在我的名單中還應該包含它的名字一樣:

1  First  
2  Second 

如果用戶點擊地址也,我也得到地址。

表/網格是在這裏:

UserId Name  Address 
---------------------------- 
    1  First  America 
    2  Second France 

我試着用下面的查詢,但弄得我怎麼能像::

var ll = DB.Users.Select(d => d.Name).ToList(); 

單查詢串聯多個搜索欄與現在,我必須在上面的查詢中再引入一個列。我該怎麼做?

+0

您可以使用動態表達式生成器,如下所述:http://stackoverflow.com/a/16517768/335784 – Ben

回答

0

爲每個列組合創建一個單獨的LINQ查詢,或嘗試使用將解決此問題的存儲過程。

使用原始SQL,您可以構建一個動態查詢,該查詢將根據複選框參數返回不同的列。

編輯: 既然你只想使用LINQ,我建議你返回所有可能的列和過濾不需要的列了在應用程序的演示文稿的一部分。

+0

先生,我不想使用存儲過程。我只能在Linq做。我只有一個選項來創建if和else條件。如果(名稱不是空的{我會寫查詢獲取名稱} else {名稱和Id,我會寫查詢獲取名稱和Id的記錄}等等,但這將創建許多如果其他條件在我的網頁。如果我有20 coloums表,它沒有任何意義,我必須得到它在同樣的查詢是我的requirements.Please幫助我 – Sweetie

+0

我不認爲這是可能的LINQ查詢作爲你不能(簡單地)在運行時動態地構建查詢,你可以簡單地返回所有列並在之後進行過濾。 – Howie