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哥初始值设定项,并新增入数据库中.
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战