首页 > 编程语言 > 学习ASP.NET Core Blazor编程系列四——迁移

学习ASP.NET Core Blazor编程系列四——迁移

时间:2022-10-01 17:11:29浏览次数:73  
标签:Core ASP 数据库 迁移 NET Blazor

学习ASP.NET Core Blazor编程系列一——综述 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(上) 学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(中)

学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(下) 

学习ASP.NET Core Blazor编程系列二——第一个Blazor应用程序(完) 学习ASP.NET Core Blazor编程系列三——实体

 

 

         在具体的实际项目中,数据实体类随着应用程序的功能的变化而变化:添加和删除新的实体或属性,并且需要相应地去修改数据库的表或架构,使其与应用程序中的实体保持同步。 EF Core中的迁移功能能够以递增方式更新数据库架构或表,使其与应用程序的数据实体类保持同步,同时保留数据库中的现有数据。

      简要地说,迁移的方式如下:

  • 当项目中的数据实体类有了变改时,开发人员使用 EF Core 工具添加相应的迁移,以使数据库架构同项目中的数据实体类保持同步。EF Core 将当前数据实体类与旧的数据实体类进行快照比对,以确定差异,并生成迁移源文件;迁移源文件可在项目的源代码管理中进行跟踪,如同其他任何源文件。
  • 生成新的迁移源文件后,可通过多种方式将其应用于数据库。 EF Core 在一个特殊的历史记录表中记录所有的迁移操作,使其知道哪些迁移已执行,哪些迁移尚未执行。

 

一、创建脚本工具并执行初始迁移

   在本篇文章中,我们来学习如何使用包管理控制台(PMC)来对数据库进行更新:

      • 执行Add-Migration Initial生成代码文件。

      • 执行Update-Database命名,更新数据库。

  1. 从菜单中选择“工具àNuGet包管理器器—>程序包管理器控制台”菜单。

       2. 在PMC中,输入以下命令: Add-Migration Initial。会提示如下错误“Add-Migration : 无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。”。如下图。

 

 3. 以上错误信息,说明我们缺少相应的包,在本文中主要用到以下三个包:
Microsoft.EntityFrameworkCore.SqlServer (适用于EF Core SQL Server 提供程序,这个包我们在前面的文章中已经安装了。)
Microsoft.EntityFrameworkCore.Design(适用于EF Core .NET Core CLI 工具 )
Microsoft.EntityFrameworkCore.Tools(适用于 EF Core 的包管理器控制台工具)

4.使用Visual Studio NuGet 包管理器控制台安装,在PMC中,输入以下命令:

Install-Package Microsoft.EntityFrameworkCore.Tools
Install-Package Microsoft.EntityFrameworkCore.Design

  5.上面的命令执行完毕之后,Nuget会自动安装我们所指定的包,如下图中红框所示。然后我们在PMC中输入 Add-Migration Initial。如下图。

 

  6. 在上面的命令执行完毕之后,会在项目中增加Migrations目录和用于创建初始数据库的代码,如下图。这些代码是基于DbContext指定的模型(在Models/ BookCntext.cs)。初始参数用于命名迁移。您可以修改成任何名称,但按惯例您可以选择描述迁移的名称。

 

  7. 在上面的命令执行完毕之后,输入Update-Database,这个命令通过运行Migrations / <time-stamp>_Initial.cs文件,创建数据库表。执行过程如下图。

 

 8. 执行结束之后,会在数据库中创建Book表。如下图。

 

 

 

标签:Core,ASP,数据库,迁移,NET,Blazor
From: https://www.cnblogs.com/chillsrc/p/16747434.html

相关文章

  • Netty 学习(六):创建 NioEventLoopGroup 的核心源码说明
    Netty学习(六):创建NioEventLoopGroup的核心源码说明作者:Grey原文地址:博客园:Netty学习(六):创建NioEventLoopGroup的核心源码说明CSDN:Netty学习(六):创建NioEventLoopG......
  • EF Core 执行原生SQL
    1.执行Sql非查询语句[HttpPost("InsertBatch")]publicasyncTask<ActionResult>InsertBatch(){stringtitle="执行原生Sql非查询......
  • VB,NET RichTextBox 计算光标所在行和列的方法
    PrivateSubRichTextBox1_Click(senderAsObject,eAsEventArgs)HandlesRichTextBox1.Click '计算光标所在的位置DimintSelstartAsInteger......
  • EF Core 分页查询
    提示:分页查询时,尽量显式地指定排序规则[HttpGet("{pageIndex:int}/{pageSize:int}")]publicasyncTask<ActionResult<IEnumerable<Book>>>GetPage(intpageIn......
  • .NET Core泛型约束
    .NETCore泛型约束如果一个类/引入了泛型类型,那么可以对引入的泛型写一个约束,让传入的泛型类型必须具备某些条件才能传入publicclassPerson<T>whereT:base-cla......
  • EF Core 查询性能优化
    一、IEnumerable和IQueryable的区别1.IEnumerable1.1是立即Sql查询执行,除了生成首次的Where条件之外,之后的查询条件都是在内存中进行,当数据量很大时,性能就会有问......
  • .NET教程 - 加密 & 解密(Encryption & Decryption)
    更新记录转载请注明出处:2022年10月1日发布。2022年9月29日从笔记迁移到博客。常用加密算法Encryptionanddecryption(加密和解密)说明使用Key进行加密和解密Key......
  • 【EF Core 6.0 】Entity Framework概要
    EntityFramework概要EntityFramework是微软的ObjectRelationalMapper(对象关系映射器),也就是我们平常说的ORM,它可以让应用程序开发者将关系型数据作为业务模型来使用,......
  • 【 EF Core 6.0】DbSet与DbContext数据更新奥秘
    转载:https://www.cnblogs.com/tangge/p/4528102.htmlEFCore 6.0底层是Miscrosoft.Data.sqlite。5.6.4《DbSet与DbContext》介绍DbSet与DbContext中的核心属性及重......
  • 最小 Linux 发行版 Tiny Core Linux 7.1 发布
    TinyCore Linux 是一个极度简约但是也高度可扩展的GNU/Linux发行版,其之精简甚至可以小到只有10MB大小。昨天5月23日刚刚发布的TinyCoreLinux7.1也仅仅只有......