zoukankan      html  css  js  c++  java
  • 2.NET Core设定数据库种子

     

    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>();
    }
    }

  • 相关阅读:
    [HEOI2015]兔子与樱花
    Qt5——从零开始的Hello World教程(Qt Creator)
    qt利用QT designer构建第一个界面helloworld工程
    兆芯处理器的发展之路 从南北桥架构到开先KX-5000系列
    SPEC CPU 使用简介
    国产龙芯3A3000处理器评测:与英特尔差距明显
    测试
    【转载】ltp压力测试结果分析脚本
    H5开发基础之像素、分辨率、DPI、PPI
    【转载】分辨率和像素是什么关系?
  • 原文地址:https://www.cnblogs.com/ouyangkai/p/10912664.html
Copyright © 2011-2022 走看看