我是靠谱客的博主 可靠水壶,最近开发中收集的这篇文章主要介绍ASP .NET Core Web Razor Pages系列教程四:使用数据库进行交互(SqlServer 版),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

系列文章目录:系列教程:使用ASP.NET Core创建Razor Pages Web应用程序 - zhangpeterx的博客


上一个教程:ASP .NET Core 系列教程三:自动生成Razor Pages(CRUD)


在文件Startup.cs->函数ConfigureServices中添加如下代码(如已存在,不用添加):

services.AddDbContext<RazorPagesMovieContext>(options =>
         options.UseSqlServer(Configuration.GetConnectionString("RazorPagesMovieContext")));

在这里插入图片描述
然后在appsettings.json中添加数据库连接字符串:

 "ConnectionStrings": {
    "RazorPagesMovieContext": "Server=(localdb)\mssqllocaldb;Database=RazorPagesMovieContext-1234;Trusted_Connection=True;MultipleActiveResultSets=true"
  }

在这里插入图片描述
从“ 工具”菜单中,选择“ NuGet包管理器” >“ 包管理器控制台”。
输入如下命令:

Add-Migration Initial
Update-Database

在这里插入图片描述
然后F5,进行测试。打开页面 http://localhost:10874/movies
在这里插入图片描述

LocalDB是SQL Server Express数据库引擎的轻量级版本,用于程序开发。LocalDB按需启动并以用户模式运行,因此没有复杂的配置。默认情况下,LocalDB数据库*.mdf在C:/Users/目录中创建文件。

然后从“ 视图”菜单中,打开SQL Server对象资源管理器(SSOX):

在这里插入图片描述

右键单击dbo.Movie并选择视图设计器:
在这里插入图片描述
看到表和建表代码都在上面:
在这里插入图片描述
在Models文件夹中使用以下代码创建一个SeedData的类.
如果数据库中有任何电影,则种子初始化程序不添加电影。

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Linq;

namespace RazorPagesMovie.Models
{
    public static class SeedData
    {
        public static void Initialize(IServiceProvider serviceProvider)
        {
            using (var context = new RazorPagesMovieContext(
                serviceProvider.GetRequiredService<
                    DbContextOptions<RazorPagesMovieContext>>()))
            {
                // Look for any movies.
                if (context.Movie.Any())
                {
                    return;   // DB has been seeded
                }

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

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

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

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

修改Program.cs文件为如下:

using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using RazorPagesMovie.Models;
using System;
using Microsoft.EntityFrameworkCore;

namespace RazorPagesMovie
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                try
                {
                    var context = services.
                        GetRequiredService<RazorPagesMovieContext>();
                    context.Database.Migrate();
                    SeedData.Initialize(services);
                }
                catch (Exception ex)
                {
                    var logger = services.GetRequiredService<ILogger<Program>>();
                    logger.LogError(ex, "An error occurred seeding the DB.");
                }
            }

            host.Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();
    }
}

然后F5,进行测试。打开页面 http://localhost:10874/movies

可以看到初始化的数据了:
在这里插入图片描述

下一个教程:ASP .NET Core Web Razor Pages系列教程五:更新Razor Pages页面

最后

以上就是可靠水壶为你收集整理的ASP .NET Core Web Razor Pages系列教程四:使用数据库进行交互(SqlServer 版)的全部内容,希望文章能够帮你解决ASP .NET Core Web Razor Pages系列教程四:使用数据库进行交互(SqlServer 版)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部