.net core出来已经有很长一段时间了,而EentityFrameworkCore(后面简称EFCore)是.net framework的EntityFramework在.net core中的实现,至于EntityFramework是什么,这里就不介绍了。

  本文主要介绍EFCore的CodeFirst方式下的数据迁移。

  

  一、创建项目

  首先创建项目结构如下:

  EntityFrameworkCore数据迁移(一)

   说明:

  EFCoreDemo.EntityFrameworkCore:这个是一个标准类库,主要一些EFCore的一些ORM实体与配置。

  EFCoreDemo.ConsoleApp:这个是一个控制台项目,主要用于使用EFCore的使用,因为一般都是使用WebApi或者MVC,然后后使用三层架构,或者一些其他的架构诸如ABP等,使用仓储等模式使用EFCore,但这里为了简单,直接使用一个控制台程序模拟。

  EFCoreDemo.EntityFrameworkCore.Host:这个也是一个控制台程序,主要用于EFCore的数据迁移。

  于是乎,我们的项目引用关系是:

  EFCoreDemo.ConsoleApp 引用 EFCoreDemo.EntityFrameworkCore

    EFCoreDemo.EntityFrameworkCore.Host 引用 EFCoreDemo.EntityFrameworkCore

   

  二、创建实体及上下文

  对EFCoreDemo.EntityFrameworkCore项目使用nuget安装EFCore所需的包:

   # 如果使用MySql,安装 
  Microsoft.EntityFrameworkCore Pomelo.EntityFrameworkCore.MySql

  # 如果使用SqlServer,安装
  Microsoft.EntityFrameworkCore  
  Microsoft.EntityFrameworkCore.SqlServer

  这里使用的是MySql

  现在假设我们要创建3张表,用户表(Account),活动表(Activity),活动记录表(ActivityRecord)

  于是我们分别创建3个实体与它对应  

  
    /// <summary>
    /// 用户表
    /// </summary>
    public class Account : BaseEntity
    {
        /// <summary>
        /// 姓名
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 手机号码
        /// </summary>
        public string Phone { get; set; }
        /// <summary>
        /// 年龄
        /// </summary>
        public int Age { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CreationTime { get; set; }
    }
用户表

相关文章: