Estoy usando EF4, primero el código. Como tal, mis clases de modelo tienen una combinación de propiedades públicas, algunas propiedades virtuales (para datos cargados perezosos de otras tablas) y algunas propiedades que se fijan con los atributos [NotMapped]
para que sean omitidas por EF.obteniendo la consulta de Entity Framework para respetar los atributos
A veces me gusta utilizar la consulta sin formato: c.Database.SqlQuery<T>("select ...")
para utilizar EF como mapeador de filas.
Noté en Intellitrace que estas consultas generaban muchas excepciones lanzadas y atrapadas para "IndexOutOfRange". Después de algunas búsquedas, las excepciones son todas para las propiedades virtuales y [No modificadas] en el objeto modelo. No quiero tener que construir una nueva clase de modelo de datos o clase principal con solo las propiedades de la tabla; ¿Hay algún paso de configuración que me haya olvidado para decirle al mapeador de filas en el corredor de consultas sin procesar que preste atención a las mismas anotaciones que usa el resto de EF? Tal vez arreglaron esto en EF5?
Sabía que el dbSet funcionaba; por diversas razones, no tengo un dbSet en el que me interese utilizar Database.SqlQuery. Entonces suena como "nunca" es la respuesta. – Mikeb
Sí, hay una gran diferencia entre esas dos llamadas, pero no veo una razón por la que no deba tener 'DbSet'. Usted tiene un contexto y conoce un tipo para llamar a 'dbContext.Set() .SqlQuery (....)' debería ser posible. –
Iba a intentar eso para ver si era más rápido o no, y recordé por qué no hice eso: "El tipo de entidad (T) no es parte del modelo para el contexto actual". – Mikeb