我一直花費相當長的時間嘗試創建一個Linq查詢,其中包含一個組,只是爲了返回一個SelectList的列表與公共文本和值屬性。等價的Sql組由Linq獲取值和文本屬性
我認爲並且仍然希望它不必像它看起來那麼困難,我更喜歡認爲那是我和我有時候疲倦的大腦,但老實說我放棄了。
我已經能夠做到什麼,我想與原始SQL,但是,它只是簡單的好奇心,因爲我拒絕認爲LINQ的是,多大的浪費時間的......
所以,請,如果有人在那裏,誰知道如何在一個LINQ查詢拉姆達做到這一點,請照亮我疲倦的大腦......
什麼,我得到了與原始的SQL和LINQ的拉姆達希望(它完美的作品,我花了2分鐘,我可以很好地填充我的MultiSelectFor):
string sql = " select [AlphabeticCode] as 'Value', concat([AlphabeticCode], ' - ', Currency) as Text from [table] " +
" group by AlphabeticCode, Currency; ";
var currency = db.Database
.SqlQuery<Models.myViewModels.LinqToSql.SelectListViewModel>(sql)
.ToList();
model.currency = new SelectList(currency, "Value", "Text");
什麼我以爲我做得對,讓我花了lonnnng時間,並最終給我收集我的文字裏財產......不是我想在所有...(我知道是不正確的,我嘗試了不少更多的選項),但是這一次有點對我有意義,請給一個理由保持這種奇怪的LINQ的東西的工作...
var cc = db.table.GroupBy(item => item.Currency)
.Select(group =>
new
{
Value = group.Key,
Text = group.Select(m => m.Currency).Take(1), // here is where i want just ONE string that is the currency name
}
)
.ToList();
謝謝多到誰需要一些時間來閱讀我的挫折...
你真的想通過或僅獲得格式爲字符串的唯一的AlphabeticalCode + Currancy對? – mikelegg
AlphabeticalCode + Currancy對格式化爲字符串,所以我以後可以做 model.currency = new SelectList(currency,「Value」,「Text」);但當然分組或按字母順序編碼 –
對不起,你只是有麻煩兩列分組,看起來像一個很瑣碎的查詢,所以我可能錯過了什麼? –