1.使用以下代码在 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
{
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();
}
}
}
}

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

在 Program.cs 中,修改 Main 方法以执行以下操作:
从依赖关系注入容器获取数据库上下文实例。
调用 seed 方法,并将上下文传递给它。
Seed 方法完成时释放上下文。
下面的代码显示更新后的 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>();
}
}

最新文章

  1. T-SQL编程 —— 用户自定义函数(标量函数)
  2. cell 内部 设置width 总不对
  3. thinkphp 动态验证码
  4. SQL Server选取本周或上一周数据
  5. maven 项目配置
  6. Mysql新建表,插入中文时报错“Incorrect string value: &#39;\xE4\xBD\xA0\xE5\xA5\xBD&#39; for column”问题
  7. mysql centeros 安装
  8. 怎样查看Tomcat动态控制台信息
  9. How to make vcredist_x86 reinstall only if not yet installed
  10. NS2仿真:使用NS仿真软件模拟简单网络模型
  11. 谈谈当代大学生学习IT技术的必要性。
  12. 2017-12-19python全栈9期第四天第一节之昨日内容回顾与作业讲解之插入insert和extend
  13. P2866 [USACO06NOV]糟糕的一天Bad Hair Day--单调栈
  14. IDEA鼠标显示javadoc的设置
  15. Linux0.11从开机到准备执行main函数的启动学习
  16. Java如何监视线程的状态?
  17. Ubuntu 11.10 H3C iNode 客户端安装
  18. Mongodb 安装 和 启动
  19. oracle序列sequence操作汇总(命令)--待续
  20. EntityFramework Code First 模式下使用数据迁移

热门文章

  1. Fix multiple GPUs fails in training Mask_RCNN
  2. shell 命令行参数(基本)
  3. 多catch块的代码优化
  4. Spring(二十三):Spring自动注入的实现方式
  5. SpringCloud之application.properties和bootstrap.properties区别
  6. 【深入学习linux】Xshell的安装和使用
  7. MySQL 设计与开发规范
  8. 登陆服务器提示“You need to run &quot;nvm install N/A&quot; to install it before using it.”
  9. api-doc-php
  10. 拼接Sql语句小心得