概述
系列文章目录:系列教程:使用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 版)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复