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

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


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


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

复制代码
1
2
3
services.AddDbContext<RazorPagesMovieContext>(options => options.UseSqlServer(Configuration.GetConnectionString("RazorPagesMovieContext")));

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

复制代码
1
2
3
4
"ConnectionStrings": { "RazorPagesMovieContext": "Server=(localdb)\mssqllocaldb;Database=RazorPagesMovieContext-1234;Trusted_Connection=True;MultipleActiveResultSets=true" }

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

复制代码
1
2
3
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的类.
如果数据库中有任何电影,则种子初始化程序不添加电影。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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文件为如下:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部