Saltar al contenido

Entity Framework Core creando un modelo a partir de una base de datos existente

Indagamos en el mundo on line para de esta forma mostrarte la respuesta a tu problema, si tienes inquietudes puedes dejar la pregunta y te responderemos porque estamos para servirte.

Solución:

Sé que esta pregunta es un poco antigua, pero creo que es bastante útil para las personas que tropiezan con el mismo problema.

Si he entendido su pregunta correctamente, desea especificar qué tablas se deben generar. Debería ser posible si agregas el -Tables Parámetro al comando.

Aquí está el comando que usé para generar 3 tablas de la base de datos (en la consola del administrador de paquetes):

Scaffold-DbContext "Server=(localdb)mssqllocaldb;Database=DatabaseName;Trusted_Connection=True;"  
     -Provider Microsoft.EntityFrameworkCore.SqlServer 
     -OutputDir Models -Context NorthwndContext 
     -Tables Products,Categories,Suppliers -Force

Como puede ver, uso Northwnd-Database y solo genero las tablas “Productos, Categorías y Proveedores”. Obviamente, puedes agregar más tablas, solo tienes que separarlas con comas.

Si no lo sabe, puede obtener el Nombre de la base de datos yendo a Conexiones de datos (Explorador de servidores), haga clic en la Base de datos que desea agregar y en el lado derecho (Propiedades), verá una Propiedad (Nombre). Para mí fue “NORTHWND.MDF”.

solía -Force para anular cualquier modelo que ya haya creado.

Puedes usar -DataAnnotations para obtener modelos anotados. De lo contrario, obtendrá la configuración del modelo Fluent.

PD: solo probé esto con ASP.NET Core 2 y Entity Framework Core 2.0.0.

Mi situación era que tenía una biblioteca de clases .net 4.5+ con DbContexts.

Esos DbContexts se crearon a partir de una base de datos existente mediante el asistente “Codificar primero desde la base de datos existente”. Parece que falta este asistente en EF Core.

Para crear un nuevo Code First DbContext a partir de una base de datos existente compatible con EF Coreseguí vagamente la guía aquí

mis pasos:

  • Creó una nueva biblioteca de clase principal

  • Se agregó el paquete nuget Microsoft.EntityFrameworkCore

  • Se agregó el paquete nuget Microsoft.EntityFrameworkCore.Herramientas
  • Se agregó el paquete nuget Microsoft.EntityFrameworkCore.SqlServer
  • Se agregó el paquete nuget Microsoft.EntityFrameworkCore.SqlServer.Diseño

  • Abrió la consola del Administrador de paquetes nuget

  • Ingresó el comando

    Scaffold-DbContext "data source=MYSQLDBSERVERMYSQLINSTANCE;initial catalog=MYDB;integrated security=True;MultipleActiveResultSets=True;"
    
  • Ingresado como proveedor

    Microsoft.EntityFrameworkCore.SqlServer
    

Tenga en cuenta que cuando usa un proyecto que no es de Core, es posible que tenga problemas con la consola de Nuget Package Manager. Evité este problema simplemente creando una nueva biblioteca de clase principal, en lugar de una .net.

Una vez que haya creado el contexto, puede editarlo normalmente en Code First, por ejemplo, puede eliminar las tablas que no desea usar.

No hay forma de hacer eso en Entity Framework Core. Lea la documentación aquí: https://docs.microsoft.com/en-us/ef/efcore-and-ef6/features

Reseñas y valoraciones

Recuerda que puedes comunicar este escrito si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *