2014-11-17 47 views
0

我有多個列與列A,B,C,d,E,等「交易」表的數據庫..負載選擇表中的列動態C#MVC 4

我目前加載使用

整個表
var transactions = db.Transactions.where().ToList() ...... (db is a data context) 

現在,根據用戶的表單提交,我想選擇列A或B或C或動態組合的任何一個組合。

然而,使用

transactions.AsQueryable().Select(q => new { (searchResult.A ? q.A : q.id), (searchResult.B ? q.B : q.id) }); 

(信息搜索結果是模型對象從具有複選框交易表的所有列名的形式返回)

顯示錯誤

無效匿名類型成員聲明符。匿名類型成員必須聲明爲成員分配,成員訪問的簡單名稱。

什麼我缺少或應該做不同?

+0

在任何方法中,結果總是一個'dynamic',因爲結果類型在編譯時是未知的。問題是你是否可以在代碼中處理這些'動態'。 –

回答

0

嘗試名稱添加到您的匿名類型,如:

transactions.AsQueryable().Select(q => new { A = (searchResult.A ? q.A : q.id), B = (searchResult.B ? q.B : q.id) }); 

附:如果ABid列具有相同的DB類型,這應該可以工作

+0

感謝@MaxBrodin,您的解決方案解決了錯誤。 但是,我實際上是從存儲在數據庫中的數據創建圖表。該程序計算所有變量的值(40+ !!)。用戶然後使用複選框選擇他/他想要在圖表中顯示的變量。 因此,我只需要選擇用戶已選擇的變量/列和轉發數據加載到JS庫。 例如,用戶可能只想查看圖表中列A和C的數據,同時丟棄表B,D,E等。我將如何去創建這樣的數據? –

+0

@ user2846090,可以用[Database.SqlQuery](http://msdn.microsoft.com/en-us/library/gg696545(V = vs.113)的.aspx) 或[構建動態表達式樹](HTTP: //msdn.microsoft.com/en-us/library/bb882637.aspx) 或[原始SQL查詢](http://anexinetmobility.blogspot.com/2013/09/returning-dynamic-data-with-entity。 HTML) –