Razor页面 数据库

     1. Startup读取   appsettings.json 文件中配置的连接字符串

      builder.Services.AddDbContext<RazorPagesMovieContext>(options =>

                 options.UseSqlServer(builder.Configuration.GetConnectionString("RazorPagesMovieContext")));

    2. LocalDB : 轻型版的 SQL Server Express 数据库引擎,以程序开发为目标。 LocalDB 作为按需启动并在用户模式下运行的轻量级数据库没有复杂的配置.

        ①. 视图=>Sql Server对象资源管理器

    找到appsetting配置的连接字符串对应的数据库,可以查看数据库表的结构和数据。

    3. 设定数据库种子:

   ①. 创建一个名为 SeedData 的新类:     

    using Microsoft.EntityFrameworkCore;
    using RazorPagesMovie.Data;

    namespace RazorPagesMovie.Models
    {
      public static class SeedData
      {
        public static void Initialize(IServiceProvider serviceProvider)
        {
          using (var context = new RazorPagesMovieContext(
          serviceProvider.GetRequiredService<
          DbContextOptions<RazorPagesMovieContext>>()))
          {
            if (context == null || context.Movie == null)
            {
              throw new ArgumentNullException("Null RazorPagesMovieContext");
            }

            // Look for any movies.
            if (context.Movie.Any())
            {
              return; // DB has been seeded
            }

            context.Movie.AddRange(
              new Movie
              {
                Title = "When Harry Met Sally",
                ReleaseDate = DateTime.Parse("1989-2-12"),
                Genre = "Romantic Comedy",
                Price = 7.99M
              },

              new Movie
              {
                Title = "Ghostbusters ",
                ReleaseDate = DateTime.Parse("1984-3-13"),
                Genre = "Comedy",
                Price = 8.99M
              },

              new Movie
              {
                Title = "Ghostbusters 2",
                ReleaseDate = DateTime.Parse("1986-2-23"),
                Genre = "Comedy",
                Price = 9.99M
              },

              new Movie
              {
                Title = "Rio Bravo",
                ReleaseDate = DateTime.Parse("1959-4-15"),
                Genre = "Western",
                Price = 3.99M
              }
            );
            context.SaveChanges();
          }
        }
      }
    }

    ②. 添加种子初始值设定项

      startup新增(微软文档实在program里):

      using RazorPagesMovie.Models; -- 新增种子新类的引用

      // 此处微软文档新增的是using (var scope = app.Services.CreateScope())

      // 我在startup文件中Configure方法中新增的是using (var scope = app.ApplicationServices.CreateScope()) 如下:

      using (var scope = app.ApplicationServices.CreateScope())

       {

         var services = scope.ServiceProvider;

         SeedData.Initialize(services);

      }

      备注 : seedData.Initialize : 传递数据库上下文实例。

        Seed 方法完成时释放上下文。 using 语句将确保释放上下文。

    ③. 测试应用:

      如果数据库中没有任何电影,会返回种子类中设定的4哥初始值设定项,并新增入数据库中.

      

posted @   大师兄被妖怪抓走了  阅读(147)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示