c# - framework - Marco de la entidad-Generación de clases
entity framework database first (4)
Tengo una base de datos existente. Esperaba que hubiera una forma de generar archivos de clase desde esta base de datos. Sin embargo, parece que veo mucho generar la base de datos a partir de los archivos de clase.
¿Hay alguna forma de generar archivos de clase a partir de una base de datos existente utilizando Entity Framework? ¿Si es así, cómo? ¿Alguien puede indicarme un tutorial?
- Abra el modelo EDMX
- Haga clic derecho -> Actualizar modelo desde el navegador -> Procedimiento almacenado -> Seleccione su procedimiento almacenado -> Finalizar
- Vea el Navegador de modelos que aparece junto al Explorador de soluciones.
- Vaya a Importaciones de funciones -> haga clic con el botón derecho en su procedimiento almacenado -> Agregar importación de funciones
- Seleccione las entidades en Volver a una colección de -> Seleccione su nombre de entidad en el menú desplegable
- Construye tu solución
El modelo EDMX no funcionará con EF7 pero he encontrado un producto de Comunidad / Profesional que parece ser muy potente: http://www.devart.com/entitydeveloper/editions.html
Encontré una solución muy agradable. Microsoft lanzó una versión beta de Entity Framework Power Tools: Entity Framework Power Tools Beta 2
Allí puede generar clases de POCO, derivación de DbContext y Code First para una base de datos existente con algunos clics. ¡Es muy bonito!
Después de la instalación, se agregarán algunas opciones de menú contextual a su Visual Studio.
Haga clic derecho en un proyecto de C #. Elija Entity Framework-> Reverse Engineer Code First (Genera clases POCO, deriva DbContext y Code First mapping para una base de datos existente):
A continuación, elija su base de datos y haga clic en Aceptar. ¡Eso es todo! Es muy fácil.
1) Primero necesitas generar EDMX
modelo EDMX
usando tu base de datos. Para hacerlo, debes agregar un nuevo elemento a tu proyecto:
- Seleccione
ADO.NET Entity Data Model
de la lista de plantillas. - En la página Elegir contenido del modelo, seleccione la opción Generar desde la base de datos y haga clic en Siguiente.
- Elige tu base de datos
- En la página Elegir los objetos de su base de datos, verifique las tablas. Elija Vistas o Procedimientos almacenados si lo necesita.
Entonces ahora tiene el archivo Model1.edmx
en su proyecto.
2) Para generar clases usando su modelo:
- Abra su diseñador de modelos
EDMX
. - En la superficie de diseño, haga clic con el botón derecho -> Agregar elemento de generación de código ...
- Seleccione plantillas en línea.
- Seleccione
EF 4.x DbContext Generator for C#
. - Haga clic en ''Agregar''.
Observe que se agregaron dos elementos a su proyecto:
-
Model1.tt
(Esta plantilla genera clases de POCO muy simples para cada entidad en su modelo) -
Model1.Context.tt
(Esta plantilla genera un DbContext derivado para usar para consultas y datos persistentes)
3) Ejemplo de lectura / escritura de datos:
var dbContext = new YourModelClass(); //class derived from DbContext
var contacts = from c in dbContext.Contacts select c; //read data
contacts.FirstOrDefault().FirstName = "Alex"; //edit data
dbContext.SaveChanges(); //save data to DB
No olvide que necesita la versión 4.x de EntityFramework. Puede descargar EF 4.1 aquí: Entity Framework 4.1 .