Estoy usando Entity Framework por primera vez, pero parece que no funciona como se esperaba.
tengo este codigo:
using System; using System.Collections.Generic; using System.Data.Entity; using System.Linq; public static class QueryClass { public static void Query() { using (var context = new MyDbEntities()) { DbSet<MyTable> set = context.Tables; var query = from val in set select value; } } }En la línea de consulta (exactamente la variable "establecer" está subrayada en rojo) aparece el error:
No se pudo encontrar una implementación del patrón de consulta para el tipo de fuente 'System.Data.Entity.DbSet'. 'Select' no encontrado. Falta una referencia o una directiva de uso para 'System.Linq'
MyDbEntities es generado automáticamente por Entity Framework en un enfoque de base de datos primero, context.Tables es un DbSet , por lo que debería poder usar Linq, que se agregó a través de la directiva de using . Para evitar malentendidos, dentro de esta clase encuentro lo siguiente:
public virtual DbSet<MyTable> Tables { get; set; } ¿Qué me falta para que la select funcione?
Gracias.
deberá agregar una referencia a System.Data.Linq
System.Data.Linq es específico de LINQ-SQL (DataContext, etc.)
using System; using System.Collections.Generic; using System.Data.Entity; using System.Data.Linq; using System.Linq; public static class QueryClass { public static void Query() { using (var context = new MyDbEntities()) { IQueryable<MyTable> qTable= from t in context.Tables select t; // can you confirm if your context has Tables or MyTables? Console.WriteLine("Table Names:"); foreach (var t in qTable) { Console.WriteLine(t.Name);//put the relevant property instead of Name } } } }