这篇文章主要介绍“ASP.NET的EF Core迁移怎么实现”,在日常操作中,相信很多人在ASP.NET的EF Core迁移怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ASP.NET的EF Core迁移怎么实现”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
成都创新互联公司专注于阿拉尔企业网站建设,成都响应式网站建设公司,商城建设。阿拉尔网站建设公司,为阿拉尔等地区提供建站服务。全流程按需制作网站,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务
当你开发一个新的应用程序的时候,你的模型频繁的变化,而每一次的数据模型的改变,将使它与数据库不同步。你通过配置EF Core,使得数据库不存在时创建数据库。每一次改变数据模型(增删改 实体类或者改变DbContextClass),可以删除数据库然后重新创建一个与数据模型相匹配的数据库,然后填充测试数据。
这种保持数据模型与数据库同步的方法能够工作得很好,然后却不适用于将应用程序发布到产品中的阶段。当应用程序在真实的产品的时候,通常产品中包含有你需要保留的数据,在模型改变的时候(比如增加一个新列),你不希望丢失任何数据。EF Core 迁移功能能够解决这个问题,它能使EF更新数据库的结构而不用重新创建一个新的数据库。
为了能够使用迁移,你可以使用 Package Manager Console(PMC)或者command-line interface(CLI 命令行)。
用于CLI的EF工具 是在 Microsoft.EnrityFrameworkCore.Tools工具包中提供,对于 vs 15.7的版本,已经默认添加到了MVC模板中的 Microsoft.AspNetCore.App 包中。不用像官方教程介绍的,需要手工添加。
<PackageReference Include="Microsoft.AspNetCore.App" />
更改连接字符串
更改appsettings.josn文件中数据库连接字符串中的数据库名称为以前未使用的过名称。这样的改变使项目能使用 first migration 创建一个新的数据库。这并不是一个开始使用迁移必需的操作,但你会看到这是一个好主意。
另外一个方法是从SSOX(SQL Server Object Exporer SQL对象资源管理器)或CLI中删除数据库。
删除数据库的CLI命令是:dotnet ef database drop
创建初始化迁移
在解决方案管理器中,右键 项目文件夹----在弹出的菜单中选择 在文件资源管理器 中打开--------在地址栏输入cmd.
在控制台窗口中输入:dotnet ef migrations add InitialCreate
EF产生的代码会从头开始创建数据库。
会在解决方案管理器中 建立一个Migrations 文件夹,在其中,有一个同名加时间戳的cs文件。Up方法创建与数据模型实体集对应的数据库表格,down方法删除它们。
如果你创建初始化迁移的时候,数据库已经存在。创建数据库的代码依然会生成但是它不会运行,因为数据库已经与数据模型相匹配。当你发布一个应用到另外一个环境的时候,数据库不存在,此代码将会创建数据库,所以,这是一个好的主意先来测试它。
数据模型快照(Data Model snashot)
迁移创建了现有数据库结构的快照。当你增加一个迁移,通过对比数据模型和快照文件,决定改变了什么。
删除迁移的控制台命令是 dotnet ef migrations remove ,会删除迁移和保证快照 被正确的重置。
应用迁移到数据库
应用迁移更新数据库的CLI:dotnet ef database update
数据库中的EFMigrationsHistory表 会跟踪哪些迁移被应用到数据库。
到此,关于“ASP.NET的EF Core迁移怎么实现”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
网页名称:ASP.NET的EFCore迁移怎么实现
文章位置:https://www.cdcxhl.com/article48/ihsgep.html
成都网站建设公司_创新互联,为您提供网站建设、网站排名、服务器托管、关键词优化、做网站、用户体验
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联