Inicializar las migraciones
Clase 18 de 25 • Curso de Fundamentos de Entity Framework
Contenido del curso
Clase 18 de 25 • Curso de Fundamentos de Entity Framework
Contenido del curso
Randall Chacón Sarmiento
Nelson Arturo Cortes Briceño
Jose Moreno Gomez
Miguel Teheran
Luis Matias Kühn
Marcos Lanuza
Cristian A. Cortes Sarniento
Kevin Castellano
Juan Betancur
Alonso Gutiérrez Martínez
Moisés Gamaliel Paredones Medina
Jossie Steeven Quintero Giron
Miguel Teheran
SANTIAGO SIERRA HERRERA
Juan Betancur
Fernando Mejia
Miguel Teheran
Alejandro Javier Zeballos Aguilar
Miguel Angel Reyes Moreno
Josian Francisco Cáceres Suazo
Vanesa Acuna
Miguel Teheran
Gabriel Querales Barillas
Miguel Teheran
Gabriel Querales Barillas
KEVIN A. DERAS
Miguel Teheran
Ayrton César La Madrid Martinez
JUAN DAVID MARTINEZ GONZALEZ
Edgar Armando Gómez Cárdenas
Wilson Alexánder Laguna Cárdenas
Junier Ayala Perez
Julio Ariel Rocha Soria
Miguel Teheran
Julio Ariel Rocha Soria
Daniel Alfonso Lancheros Florez
Miguel Teheran
dotnet tool install --global dotnet-ef
dotnet add package Microsoft.EntityFrameworkCore.Design --version 6.0.5
dotnet ef migrations add InitialCreate
dotnet ef database update
gracias por el aporte
Comandos para migración
Con VS
Add-Migration NombreMigration Update-Database
Con CLI .Net Core
dotnet ef migrations add NombreMigration dotnet ef database update
Excelente aporte!
Añado a tu comentario también que para poder realizar la migración con esta linea de comandos en Visual Studio, primero deben deben instalar el package:
Microsoft.EntityFrameworkCore.Tools
De lo contrario no les reconocerá el comando.
Antes de instalar el FrameworkCore.Design, revisen en el archivo .csproj la versión en la que están trabajando con EntityFramework.
Saludos, no logré avanzar, me muestra el error : Unhandled exception. System.IO.FileLoadException: Could not load file or assembly '...dotnet\tools.store\dotnet-ef\6.0.5\dotnet-ef\netcoreapp3.1\any\tools\netcoreapp2.0\any\ef.dll'. The located assembly's manifest definition does not match the assembly reference. (0x80131040) File name: '.dotnet\tools.store\dotnet-ef\6.0.5\dotnet-ef\6.0.5\tools\netcoreapp3.1\any\tools\netcoreapp2.0\any\ef.dll'
Es una discordancia entre assemblies: una referencia DLL de un assembly no tiene un firma del método que expiró.
Limpiá la solución (donet clean), reconstruí todo (dotnet build), e intentalo nuevamente.
Ya pudiste resolver el problema?
Otro lugar dónde encontrar el tool de ++dotnet ef ++ es en https://www.nuget.org/ solo buscando con el mismo nombre y ahí encontraremos sus versiones y comandos de instalación:
GRACIAS POR EL APORTE!
¿Que pasa con los datos despues de cada update?
Deben tomar los nuevos valores ingresados
O sea... se pierden los datos anteriores?
Super importante esta clase, porque siempre es bueno tener registro de todos los cambios que se hacen en la base de datos.
Saben como se hace si el proyecto lo cree desde visual studio?
Hola Fernando, también se hace por consola, debe abrir la terminal dentro de VS y ejecutar el comando, no existe una herramientas visual que lo haga.
Por alguna razon en windows 10 no me funciono instalar el dotnet-ef global asi que lo instale local con los siguiente pasos:
Crea el archivo dotnet-tools.json en tu proyecto.
dotnet new tool-manifest
Instala dotnet-ef local
dotnet tool install --local dotnet-ef
finalmente lo verificas si todo fue bien
dotnet ef
Qué útiles son los frameworks
¿qué pasa si quiero que se cree un Schema y que todo se creé en el mismo?
Hola, los registros de las tablas tambien se pueden administrar con migration o solo el schema ?
Esto me parece muy util para dos cosas: 1 = Administrar tablas de configuracion 2 = en caso de hacer sincronizacion entre dos bases de datos maestro / esclavo, se puede usar migrations para aplicar cambios en registros sobre la esclavo?
Mas adelante en el curso aprenderás como crear datos semilla y administrarlos con migraciones, también puede crear migraciones vacías y luego agregar los scripts que necesites también.
Hola, estoy utilizando VS Community 2022 y estoy intentando ejecutar el comando de dotnet ef migrations add InitialCreate y me sale el siguiente error (tambien intenté agregar el nombre del proyecto), no he podido encontrar aun la solución a estosmensajes que me dan desde la terminal:
PS C:\Users\gabriel.querales\source\repos\ASP\Curso_Entity_Framework> dotnet ef migrations add InitialCreate No project was found. Change the current working directory or use the --project option. PS C:\Users\gabriel.querales\source\repos\ASP\Curso_Entity_Framework\Curso_Entity_Framework> dotnet ef migrations add Curso_Entity_Framework.csproj InitialCreate More than one project was found in the current working directory. Use the --project option.
Adicionalmente agrego los paquetes instalados con exito:
PS C:\Users\gabriel.querales\source\repos\ASP\Curso_Entity_Framework\Curso_Entity_Framework> dotnet tool install --global dotnet-ef Tool 'dotnet-ef' is already installed. PS C:\Users\gabriel.querales\source\repos\ASP\Curso_Entity_Framework\Curso_Entity_Framework> dotnet add Curso_Entity_Framework.csproj package Microsoft.EntityFrameworkCore.Design --version 7.0.2 Determining projects to restore... Writing C:\Users\gabriel.querales\AppData\Local\Temp\tmp27EC.tmp info : X.509 certificate chain validation will use the default trust store selected by .NET. info : X.509 certificate chain validation will use the default trust store selected by .NET. info : Agregando PackageReference para el paquete "Microsoft.EntityFrameworkCore.Design" al proyecto "Curso_Entity_Framework.csproj". info : Restaurando paquetes para C:\Users\gabriel.querales\source\repos\ASP\Curso_Entity_Framework\Curso_Entity_Framework\Curso_Entity_Framework.csproj... info : El paquete "Microsoft.EntityFrameworkCore.Design" es compatible con todos los marcos de trabajo especificados del proyecto "Curso_Entity_Framework.csproj". info : Se actualizó PackageReference para la versión "7.0.2" del paquete "Microsoft.EntityFrameworkCore.Design" en el archivo "C:\Users\gabriel.querales\source\repos\ASP\Curso_Entity_Framework\Curso_Entity_Framework\Curso_Entity_Framework.csproj". info : Escribiendo el archivo de recursos en el disco. Ruta de acceso: C:\Users\gabriel.querales\source\repos\ASP\Curso_Entity_Framework\Curso_Entity_Framework\obj\project.assets.json log : Se ha restaurado C:\Users\gabriel.querales\source\repos\ASP\Curso_Entity_Framework\Curso_Entity_Framework\Curso_Entity_Framework.csproj (en 337 ms). PS C:\Users\gabriel.querales\source\repos\ASP\Curso_Entity_Framework\Curso_Entity_Framework>
Saludos
el primer error te sale por que en el segundo veo que navegas correctamente a la carpeta del proyecto que es Curso_Entity_Framework, lo que pasa es que tiene una carpeta Curso_Entity_Framework dentro de otra carpeta con el mismo nombre "Curso_Entity_Framework"
Listo, solucionado, migré el proyecto a otra carpeta y les cambié el nombre (eran muy largos) y como habían quedado archivos residuales me siguió apareciendo el error, por lo que tuve que eliminarlos manualmente. Por alguna razón se me creaba la otra carpeta (error mío seguramente porque no presté mucha atención a la hora de crear el proyecto al hacerlo directamente en VS Community). Muchas gracias.
Como implementas las migraciones en proyectos ya existentes, es decir, la base de datos ya tiene información en producción?
Se puede hacer sin problemas, lo importante es que el esquema de la BD que tengas configurado con tus clases sea exactamente igual a lo que hay en producción
Entity framework Establecer el proyecto como inicio
EntityFramework.tools
Package Manager Console
/Primera Migracion*/ add-migration FirstMigration or add-migration NombreMigracion -s DataAccess
/Actualizar Migracion*/ update-database add-migration AddData update-database
EntityFramework.Design Por consola Instalar Microsoft.EntityFrameworkCore.Design --version 6.0.5
Crear migracion dotnet ef migrations add InitialCreate
Actualizar migracion dotnet ef database update
Buenas si les presenta el siguiente error al momento de crear la migracion
ERROR
dotnet ef migrations add InitialCreate Build started... Build failed. Use dotnet build to see the errors.
Antes de poder usar las herramientas en un proyecto específico, deberá agregarle el paquete.Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.Design
Es lo que me pasaba, esto a que se debe, alguien me podría por favor explicar?
Interesante
LISTA DE COMANDOS:
dotnet tool install --global dotnet-ef
dotnet tool install --global dotnet-ef
INICIAR MIGRACION:
dotnet ef migrations add InitialCreate
dotnet ef database update
Alguien porfavor me puede ayudar con este error, no pude encontrar una solucion, este es el error: Method 'Fragment' in type 'Microsoft.EntityFrameworkCore.Design.Internal.CSharpHelper' from assembly 'Microsoft.EntityFrameworkCore.Design, Version=6.0.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' does not have an implementation.
Intenta restaurar nuevamente los nugets o depronto actualizar la version de EF
Me sale que no se puede restaurar o talvez lo estoy haciendo mal, como se debe hacer eso? y ya actualice la version de EF
No pude avanzar porque me muestra el error:
Unrecognized option '--applicationName'
An error occurred while accessing the Microsoft.Extensions.Hosting services. Continuing without the application service provider. Error: The entry point exited without ever building an IHost.
No DbContext was found in assembly 'ef'. Ensure that you're using the correct assembly and that the type is neither abstract nor generic.
He buscado bastante pero la verdad no pude resolverlo y no se a que se refiera😪
Esto aveces ocurre cuando DbContext no esta en la misma librería de la api, sino en otra que se hace referencia, revisa el namespace donde esta el DbContext que si sea el correcto. y descarga ña version que esta en github lista para que puedas comparar si hay algo diferente.