您的位置:首页 > 博客中心 > 数据库 >

学习ASP.NET Core Razor 编程系列十一——把新字段更新到数据库

时间:2022-03-15 08:33

学习ASP.NET Core Razor 编程系列目录

 

 

 

 

         在经过了上面篇文章的学习之后,本篇文章我们来学习如何使用 Entity Framework Code First 迁移功能将新字段添加到模型,并且同时将新字段添加到数据库中。

            使用 EF Code First 自动创建数据库时,Code First 会向数据库添加一个表,以帮助跟踪数据库的架构是否与生成它的实体类同步。 如果它们不同步,EF 就会引发异常。 这样一来就更容易发现一致的数据库表或者代码问题。

          我们接下来使用Code First迁移功能更新数据库。

         1. 现在我们来修改seeddata类,在类中增加一个Publishing字段,并提供数据。修改示例如下所示,你可以对每一本书籍信息都参照修改。

 
  context.Book.AddRange(
                    new Book
                    {
                        Name = "Python编程 从入门到实践",
                        ReleaseDate = DateTime.Parse("2018-1-12"),
                        Author = "埃里克·马瑟斯",
                        Price = 75.99M,
                        Publishing="机械出版社"
                    },

          2. 在Visual Studio 2017菜单中选择生成->生成解决方案

         3.在Visual Studio 2017的菜单中选择“工具”菜单-->“NuGet 包管理器”>“包管理器控制台”。 如下图。

        技术分享图片

         4. 在 PMC 中,输入以下命令,如图:

          Add-Migration Publishing

 技术分享图片

      Add-Migration 指令会通知框架执行以下操作:

    1)  将 Book实体类与 数据库中的Book表进行比较。

    2)  创建代码以将在数据库中对表Books表结构进行更新。如下图。

    3)  Visual Studio 2017对于有新字段“Publishing”的迁移文件的命名是当前日期+字段名称。这样命名这样有助于管理。如下图。

 技术分享图片

         5. 在执行完上面的指令之后,在 PMC 中,输入以下命令,如图:

            Update-Database

 技术分享图片

          7. 在执行完以上指令之后,在数据库中添加了Publishing字段。如下图。

 技术分享图片

        8. 虽然我们把字段添加 到数据库,但是这个字段,却是没有数据的。如下图。

 技术分享图片

 

那如何给字段同值呢?

  1. 如果你是开发,而且已经修改了初始化类SeedData类。那么可以参考()给数据库初始化数据。
  2. 如果你把所有的记录从数据库中删除。你可以在浏览器中打开书籍列表页面,然后使用删除链接删除记录,也可以使用SQL Server对象资源管理器(SQL Server Management Studio)使用SQL语句把数据从数据库中删除。

 

          现在我们在visual studio 2017中按F5运行应用程序,应用程序不会在如上一篇文章那样报错了。在应用程序运行起来之后,在浏览器中分别打开创建/编辑/列表页面,验证这些页面中是否已经有了publishing 字段的书籍信息。如下图。

列表页面:

 技术分享图片

创建页面:

 技术分享图片

编辑页面:

 技术分享图片

 

 

 

 

热门排行

今日推荐

热门手游