如何正確地將使用Linq的SQL(2008)中的兩列轉換爲Dictionary(用於緩存)?Linq-to-SQL ToDictionary()
我目前通過IQueryable b/c循環無法使ToDictionary方法正常工作。有任何想法嗎? 這工作:
var query = from p in db.Table
select p;
Dictionary<string, string> dic = new Dictionary<string, string>();
foreach (var p in query)
{
dic.Add(sub.Key, sub.Value);
}
我真正想要做的是這樣的事情,這似乎不工作:
var dic = (from p in db.Table
select new {p.Key, p.Value })
.ToDictionary<string, string>(p => p.Key);
但我得到這個錯誤: 無法從轉換' System.Linq.IQueryable」到‘System.Collections.Generic.IEnumerable’
對不起,我可能不清楚,我試過thie之前,但是這會創建一個Dictionary,而不是Dictionary –
Codewerks
2008-10-28 22:57:14
試試`kvp => kvp.Value as string `。答案的重點是`.AsEnumerable()`。 – yfeldblum 2008-10-28 23:01:09
謝謝,是的,我認爲需要AsEnumerable,但ToDictionary調用仍然無效。這兩列都是SQL中的varchars,所以它們以字符串的形式返回,但我無法弄清楚如何將它變成Dic。 – Codewerks 2008-10-28 23:04:26