¿Cómo convierto correctamente dos columnas de SQL (2008) utilizando Linq en un diccionario (para el almacenamiento en caché)?Linq-to-SQL ToDictionary()
Actualmente recorro el b/c de IQueryable No puedo obtener el método ToDictionary para que funcione. ¿Algunas ideas? Esto funciona :
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);
}
Lo que realmente me gustaría hacer es algo como esto, lo que no parece funcionar:
var dic = (from p in db.Table
select new {p.Key, p.Value })
.ToDictionary<string, string>(p => p.Key);
pero me sale este error: No se puede convertir de ' System.Linq.IQueryable' a 'System.Collections.Generic.IEnumerable'
Lo siento, puede que no haya sido claro, lo intenté antes, pero esto crea un Dictionary, no Dictionary –
Codewerks
Pruebe 'kvp => kvp.Value as string '. El punto de la respuesta fue '.AsEnumerable()'. – yfeldblum
Gracias, sí, pensé que se necesitaba AsEnumerable, pero la llamada ToDictionary aún no funciona. Ambas columnas son varcars en SQL, por lo que vuelven como cadenas, pero no puedo encontrar la manera de hacerlo llegar a un Dic .... – Codewerks