[聚合文章] 在.NET Core类库中使用EF Core迁移数据库到SQL Server

.Net 2017-12-08 17 阅读

前言

如果大家刚使用EntityFramework Core作为ORM框架的话,想必都会遇到数据库迁移的一些问题。

起初我是在ASP.NET Core的Web项目中进行的,但后来发现放在此处并不是很合理,一些关于数据库的迁移,比如新增表,字段,修改字段类型等等,不应该和最上层的Web项目所关联,数据的迁移文件放到这里也感觉有点多余,有点乱乱的感觉,所以才想着单独出来由专门的项目进行管理会比较好,也比较清晰!

注意目标框架选择的是.NET Core 2.0而不是.NET Standard 2.0

0、前期准备

a)、表实体定义,这个是在.NET Standard 2.0的类库中存放的。

    /// <summary>    /// 系统应用的用户实体    /// </summary>    public class ApplicationUser : BaseModel    {        /// <summary>        /// 用户名        /// </summary>        public string UserName { get; set; }        /// <summary>        /// 密码        /// </summary>        public string Password { get; set; }        /// <summary>        /// 邮件地址        /// </summary>        public string Email { get; set; }    }

b)、新建一个.NET Core 2.0的类库,并定义好我们所要使用的数据库上下文,很简单,接下来开始我们的正文

    /// <summary>    /// 系统上下文    /// </summary>    public class LightContext : DbContext    {        public LightContext(DbContextOptions<LightContext> options) : base(options)        {        }        /// <summary>        /// 系统应用用户        /// </summary>        public DbSet<ApplicationUser> ApplicationUser { get; set; }        /// <summary>        /// 角色表        /// </summary>        public DbSet<Role> Role { get; set; }    }

1、问题汇总

首先要确保仓储类库中已经引入以下两个Nuget包,没有的话请使用包管理器进行安装。不建议直接引入原包:Microsoft.AspNetCore.All,按需引入即可

Install-Package Microsoft.EntityFrameworkCore.SqlServerInstall-Package Microsoft.EntityFrameworkCore.Tools

a)打开CMD,然后切换到类库所在路径下,执行以下命令。不过你也可以使用程序包管理器控制台(PMC)进行迁移,但是会有少许变化,部分命令见下表:

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。