EF6 学习笔记:数据库迁移及部署

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF6 学习笔记:数据库迁移及部署相关的知识,希望对你有一定的参考价值。

EF6学习笔记总目录:ASP.NET MVC5 及 EF6 学习笔记 - (目录整理)

原文地址:Code First Migrations and Deployment

原文主要讲两部分:开发环境下数据库迁移到其他数据库服务器;以及在Azure上如何部署应用;

原文前面讲一堆内容,主要就是说数据库在开发过程中,如果数据模型经常需要调整,那么数据库每次都删除重建有点不太现实;尤其是对于已部署的正式环境,需要的仅仅是数据库升级,而不可能直接Drop掉,再重新Create.

所以,需要启用EF的数据迁移功能。

原文为了演示效果更好,就直接演示了迁移升级到一个全新的数据库中:

第1步:把Web.config文件中 entityFramework节点下 contexts注释掉:

  <entityFramework>
    <!--<contexts>
      <context type="EFTest.DAL.SchoolContext, EFTest">
        <databaseInitializer type="EFTest.DAL.SchoolInitializer, EFTest" />
      </context>
    </contexts>-->
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="mssqllocaldb" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>

第2步:数据库连接字符串中,数据库名改个名字,比如EFTest2

<connectionStrings>
    <add name="SchoolContext" connectionString="Data Source=(localdb)\ProjectsV13;Initial Catalog=EFTest2;Integrated Security=True;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;" providerName="System.Data.SqlClient" />
  </connectionStrings>

第3步:打开PM控制台:
技术分享

第4步:

技术分享

技术分享

 


以上是关于EF6 学习笔记:数据库迁移及部署的主要内容,如果未能解决你的问题,请参考以下文章

EF6学习笔记 弹性连接及命令拦截调试

EF6 学习笔记:Code First 方式生成数据库及初始化数据库实际操作

EF6学习笔记

代码优先迁移中列的 EF6 Oracle 默认值

在 Azure Devops 中编写 EF6 迁移脚本

Piplin 安装部署迁移和配置使用笔记