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
Jose Moreno Gomez
Comandos para migración
Con VS
Add-Migration NombreMigration Update-Database
Con CLI .Net Core
dotnet ef migrations add NombreMigration dotnet ef database update
Miguel Teheran
ProfesorExcelente aporte!
Luis Matias Kühn
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.
Marcos Lanuza
Antes de instalar el FrameworkCore.Design, revisen en el archivo .csproj la versión en la que están trabajando con EntityFramework.
Alonso Gutiérrez Martínez
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:
Moisés Gamaliel Paredones Medina
GRACIAS POR EL APORTE!
Cristian A. Cortes Sarniento
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'
Kevin Castellano
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.
Juan Betancur
Ya pudiste resolver el problema?
Jossie Steeven Quintero Giron
¿Que pasa con los datos despues de cada update?
Miguel Teheran
ProfesorDeben tomar los nuevos valores ingresados
SANTIAGO SIERRA HERRERA
O sea... se pierden los datos anteriores?
Juan Betancur
Super importante esta clase, porque siempre es bueno tener registro de todos los cambios que se hacen en la base de datos.
Fernando Mejia
Saben como se hace si el proyecto lo cree desde visual studio?
Miguel Teheran
ProfesorHola 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.
Alejandro Javier Zeballos Aguilar
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
Miguel Angel Reyes Moreno
Qué útiles son los frameworks
Josian Francisco Cáceres Suazo
¿qué pasa si quiero que se cree un Schema y que todo se creé en el mismo?
Juan Sebastian Viazzo Perrone
Hola, Miguel y comunidad....
Pense que podia ser un error de versiones pero estaba bien,
d-otnet add package Miicrosoft.EntityFrameworkCore.Design --version 6.0.14 esa era la que estaba o 7.0, por lo cual borre el 14, y puse 2...y corre igual, asi que tengo todo con la misma version, no tengan miedo de animarse...y por otro lado al final digo lo que me paso mas de alguna vez
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.2" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="6.0.2"> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PrivateAssets>all</PrivateAssets> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="6.0.2" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="6.0.2" /> </ItemGroup> </Project>
pero por lo que entiendo esta todo correcto, y el error era un tema de que ya estaba corriendo mi host al parecer (no reconozco bien el termino) pero si a alguien le pasa...
SIEMPRE FIJENSE DE IR AL ADMINISTRADOR DE TAREAS
y en el mismo, finalizar el proceso.
JOHN WILAR SALAS BAUTISTA
Les dejo el link:
Jonathan Bernal
En mi caso tuve que instalar una version anterior, debido a que el netcore que estoy usando tambien es version anterior, les dejo el comando por si ocupan instalar una version en particular:
dotnet tool install --global dotnet-ef --version 7.0.0
Y las versiones las pueden ver en nuget.org:
Junier Ayala Perez
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
Vanesa Acuna
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?
Miguel Teheran
ProfesorMas 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.
Gabriel Querales Barillas
Miguel Teheran
Profesorel 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"
Gabriel Querales Barillas
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.
KEVIN A. DERAS
Como implementas las migraciones en proyectos ya existentes, es decir, la base de datos ya tiene información en producción?
Miguel Teheran
ProfesorSe 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
Ayrton César La Madrid Martinez
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
JUAN DAVID MARTINEZ GONZALEZ
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
Edgar Armando Gómez Cárdenas
Es lo que me pasaba, esto a que se debe, alguien me podría por favor explicar?
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