query - linq entity framework c#
propósito del EF 6.x DbContext Generator (5)
Tengo una aplicación web que construí usando Linq-to-SQL y estoy buscando actualizarla a Linq-to-EF. He consultado algunos tutoriales y, básicamente, en el escenario de la base de datos, se crea un Modelo de datos de entidad ADO.NET y a partir de allí se seleccionan las tablas que se incluirán en el modelo (muy similar a linq-to-sql). Ahora, en la ventana Agregar nuevo elemento, veo que hay otra opción que consiste en crear un EF 6.x DbContext Generator.
¿Cuál es el propósito de DbContext Generator comparado con crear solo un Modelo de Datos de Entidad ADO.NET (primera opción de ventana), y para qué sirve el Generador de DbContext? Parece crear un archivo de texto; ¿Que debo hacer con eso?
Creo que este es el artículo esencial relacionado con EntityFramework y generadores:
Aquí está la introducción al artículo:
Cuando crea un modelo utilizando Entity Framework Designer, sus clases y contexto derivado se generan automáticamente para usted. Además de la generación de código predeterminada, también ofrecemos una serie de plantillas que se pueden usar para personalizar el código que se genera. Estas plantillas se proporcionan como plantillas de texto T4, lo que le permite personalizar las plantillas si es necesario.
En general, estos generadores no convierten su módulo db de LinqToSQL a EntityFramework.
Si tiene una base de datos completa (supongamos que la tiene como un módulo basado en Linq2SQL), le recomendaría que utilice el Modelo de datos de entidad ADO.NET (agregando un nuevo elemento: EDMX) y elija ''Generar desde base de datos'' (Asistente VS después de agregar) .
El Generador de DbContext reemplaza el ObjectContext por un código mucho más simple y más corto para conectar los objetos de la Entidad a los objetos de la base de datos. Una sola tabla de base de datos con 30 campos está representada por aproximadamente 800 líneas de código como un ObjectContext pero cerca de 40 líneas de código fácil de entender como un DbContext y una clase generada por DbContextGenerator.
El generador de DbContext crea dos archivos:
creando el DbContext con los detalles de la cadena de conexión y un DbSet para cada tabla.
creando la clase que representa cada tabla. Si abre estas carpetas .tt verá el DbContext y las clases generadas. No necesita hacer nada con estas clases; se refiere a ellas en las acciones del Controlador.
Un tutorial está disponible en http://msdn.microsoft.com/en-US/data/jj206878
Hay dos formas de hacer DB Primero, una involucra un archivo EDMX, la otra involucra ingeniería inversa para codificar primero POCO''s.
Cuando tiene un archivo EDMX, instala generadores que se utilizan para generar sus entidades, y hay varias opciones. Uno es DbContext, el otro es el generador EntityObject, que genera objetos basados en ObjectContext.
La primera opción crea un archivo Model-First para trabajar con EF (todas las versiones) que, si elige, puede actualizar (o construir) su EF-Model desde una base de datos existente, mientras que si elige la segunda opción, se le proporcionarían instalaciones para generar archivos correspondientes para crear una solución para trabajar con Code-First EF.
De acuerdo con mis experiencias, la segunda opción no es una opción válida y si decides trabajar con Code-First EF, se recomienda encarecidamente abrir un archivo limpio y escribir tus códigos libremente y disfrutar de la máxima flexibilidad que ofrece Code-First y sus convenciones.
Si ya tiene una base de datos, la primera opción es mejor, dado que el enfoque es muy similar al que ya está trabajando en LinqToSQL. El archivo .EDMX también puede proporcionarle una visualización gráfica de su base de datos, y no debe preocuparse por nada más.