¿Cómo puedo extraer una lista de Tuple de una tabla específica con Entity Framework / LINQ?

Necesito extraer una lista de la pareja ‘ID’ / ‘Nombre’ de una tabla grande en C # .NET con Entity Framework.

Intento esta petición:

List<Tuple> list = (from res in db.Resource select new Tuple(res.Resource_ID, res.Name)).ToList(); 

Pero lamentablemente tengo este error:

Solo los constructores sin parámetros y los inicializadores son compatibles con LINQ to Entities.

No entiendo cómo puedo extraer esta lista de tuplas con este marco y me siento un poco perdido con este error. ¿Puedes ayudarme a entender y resolver mi problema?

Atentamente,

Alex

Puede hacerlo con un paso intermedio seleccionando un tipo anónimo:

 db.Resource.Select(x => new { x.Resource_ID, x.Name }).AsEnumerable().Select(x => Tuple.Create(x.Resource_ID, x.Name)).ToList(); 

Crear una tupla no es una operación admitida en Linq To Entities, por lo que debe seleccionar un tipo anónimo, que sería equivalente a:

 SELECT [Resource].[Resource_ID], [Resource].[Name] 

luego pase a LINQ to Objects by AsEnumerable y obtenga su tupla.

Puede crear una lista de db.Resource y usar LINQ to Collections para borrar esta limitación:

 var list = db.Resource.ToList().Select(res => Tuple.Create(res.Resource_ID, res.Name)); 

La clase Tuple tiene algunos constructores (hasta 8 elementos), pero el método auxiliar Create() hace que la creación sea más sencilla.