Tenemos un cliente muy grande mesa con más de columnas (sé que alguien hace eso!)Seleccionar columnas específicas de la base de datos utilizando código de EF Primera
Muchas de estas columnas son de hecho claves externas a otras tablas.
También tenemos el requisito de carga ansiosa algunas de las tablas relacionadas.
¿Hay alguna forma en Linq a SQL o Dynamic Linq para especificar qué columnas se recuperarán de la base de datos? Busco a una declaración de LINQ que en realidad tiene este efecto en la instrucción SQL generada:
SELECT Id, Name FROM Book
Cuando ejecutamos la consulta reguar generada por EF, SQL Server genera un error que ha alcanzado el número máximo de columnas que se puede seleccionar dentro de una consulta !!!
¡Cualquier ayuda es muy apreciada!
Sí exactamente este es el caso, la tabla tiene 500 columnas y es autorreferenciado nuestra herramienta de carga automáticamente ansiosos las primeras relaciones de nivel y esto golpea el límite de SQL en el número de columnas que se pueden consultar.
Tenía la esperanza de que pueda fijar a solamente carga columnas limitadas de las entidades relacionadas, tales como identificador y el nombre (que se utiliza en la interfaz de usuario para ver el registro de usuario)
supongo que la otra opción es controlar qué columnas FK deberían estar ansiosas cargadas. Sin embargo, esto sigue siendo un problema para las tablas que tienen una columna binaria o ntext, que es posible que no desee cargar todas las veces.
¿Hay alguna manera de enlazar varios modelos (Entidades) a la misma tabla en Code First? Intentamos hacer esto, creo que el esfuerzo falló miserablemente.
Tenía la esperanza de que haya una forma más sólida de especificar las columnas. En muchos casos, nuestra aplicación MVC se comparte para varios modelos y estamos utilizando dynamic linq para poder realizar la misma consulta para diferentes tablas. – sam360
Dynamic linq también debería poder especificar la proyección. EF es una herramienta para trabajar con entidades: la entidad es lo que ha mapeado = si ha mapeado 500 columnas a la entidad, su consulta sin proyección siempre devolverá 500 columnas + columnas de todas las relaciones cargadas impacientes. –
Sí, exactamente este es el caso, la tabla tiene 500 columnas y se autoreferencia de manera automática nuestra herramienta carga las relaciones de primer nivel y esto alcanza el límite de SQL en el número de columnas que se pueden consultar. Tenía la esperanza de configurar solo para cargar columnas limitadas de las entidades relacionadas como Id y Name (que se usa en la interfaz de usuario para ver el registro en el usuario) Supongo que la otra opción es controlar qué columnas deberían estar ansioso de cargar. Sin embargo, esto sigue siendo un problema para las tablas que tienen una columna binaria o ntext, por lo que es posible que no desee cargar todas las relaciones – sam360