resumen
En el desarrollo, el desarrollo de formas de usar código de EF en primer lugar, a continuación, si se trata de tablas de datos de cambio, cómo hacerlo? Por supuesto, si un nuevo proyecto, elimine la base de datos, luego reconstruir en la línea, por lo que si el proyecto está en línea, la base de datos ya contiene datos, a continuación, elimine la base de datos para regenerar a morir, entonces, ¿cómo se puede solucionar? Ef proporciona una operación de transferencia de datos. ¿Cómo hacer esta operación específica.
pasos de migración de datos
entorno de desarrollo vs2017 + MySQL
Aquí a la web, por ejemplo. ¿Cómo concretar la operación.
1, una nueva aplicación web.
Encontrado sitio Asp.Net Core, hay cambios en la estructura del proyecto, estructura del proyecto es el siguiente:
Wwwroot encuentra aquí y se trasladó al sitio a continuación, se separan antes. Esto está más cerca del proyecto asp.net mvc estructura original.
2, EF instalación
Uso Nuget instalado, el siguiente dos paquetes
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.Tools
Pomelo.EntityFrameworkCore.MySql
Herramientas paquete, una función de migración de datos, operaciones de actualización de base de datos.
3, la adición de las clases de prueba y el contexto de base de datos
using System; usando System.Collections.Generic; usando System.ComponentModel.DataAnnotations; usando System.ComponentModel.DataAnnotations.Schema; usando System.Linq; usando System.Threading.Tasks; Wolfy.MigrationDemo.Models de espacio de nombres {Usuario clase pública { [Llave] public int Id {conjunto; obtener; } public string Nombre {conjunto; obtener; } DateTime pública CreateTime {SET; obtener; } = DateTime.Now; DateTime pública ModifyTime {SET; obtener; } = DateTime.Now; } }
base de datos de contexto
Nota: Este paquete necesita ser añadido Pomelo.EntityFrameworkCore.MySql
usando Microsoft.EntityFrameworkCore; using System; usando System.Collections.Generic; usando System.Linq; usando System.Threading.Tasks; usando Wolfy.MigrationDemo.Models; espacio de nombres Wolfy.MigrationDemo.Data { MyContext clase pública: DbContext { pública DbSet <usuario> Usuarios {SET; obtener; } override protected void OnConfiguring (DbContextOptionsBuilder optionsBuilder) => OptionsBuilder .UseMySql (@ "Servidor = localhost; Database = migrationtest; uid = root; pwd = ABCD;"); } }
4, mediante la generación de una migración de base de datos
En el Nuget vs consola, escriba el siguiente comando
Añadir a la migración init
figura
Después de la inicialización exitosa, en solución, aparece el siguiente directorio
Nota: Cuando los nuevos proyectos, preferentemente en el directorio Inglés, en el caso de la versión 2.0, o cuando se ejecuta el comando, no serán ilegibles debido chino, lo que resulta en un error de formato JSON.
Generar la base de datos
Comando se ejecuta correctamente, generar la base de datos
Después de insertar el ensayo de migración de datos
Índice IActionResult pública () { usando (MyContext db = new MyContext ()) { db.MyUsers.Add (nueva Models.User {Name = "Wolfy"}); db.SaveChanges (); } Regresar ver (); }
Dos, con el fin de facilitar las estadísticas, tenemos que la edad del usuario, entonces podemos pensar campos para agregar usuarios, a través de la migración de datos, agregar campos, y no afectará a los datos originales.
clase de entidad figura, los siguientes cambios
Usuario clase pública { [Llave] public int Id {conjunto; obtener; } public string Nombre {conjunto; obtener; } DateTime pública CreateTime {SET; obtener; } = DateTime.Now; DateTime pública ModifyTime {SET; obtener; } = DateTime.Now; public int Edad {conjunto; obtener; } }
El mandato de migración
PM> Add-init Migración Para deshacer esta acción, usar Remove-migración. PM> Actualización de Base de datos de init La aplicación de la migración '20170917062429_init'. Hecho. PM> Add-Migración updatedb Para deshacer esta acción, usar Remove-migración. PM> Actualización de Base de datos de updatedb La aplicación de la migración '20170917063252_updatedb'. Hecho. PM>
Ver los cambios en la tabla de datos
resumen
En este artículo se presenta el funcionamiento básico de las primeras formas de código de migración de datos.
Transferencia: https: //www.imooc.com/article/27276