プログラミング備忘録

プログラミングメモ

.NET Core

.NET Core MVC データベース編

net-database

テーブルのデザインの確認

  1. 「表示」メニュー → 「SQL Server オブジェクト エクスプローラー」
  2. 「SQL Server オブジェクト エクスプローラー」で「SQL Server」→「(localdb)\MSSQLLocalDB」→「データベース」→「Mvc〇〇〇Context」→「テーブル」→「dbo.〇〇〇」→ 右クリック「デザイナーの表示」
  3. テーブルのデザインが表示される。

 

テーブルのデータの表示

  1. 「dbo.〇〇〇」→ 「データの表示」
  2. テーブルのデータが表示される

 

シード(初期データ)の追加

  1. 「ソリューションエクスプローラー」の「Models」フォルダを右クリック → 「追加」→「新しい項目」
  2. 「新しい項目の追加」ダイアログで「クラス」を選択 → 名前を「SeedData.cs」にして「追加」ボタンを押下。
  3. 「SeedData.cs」を以下のコードに置き換えます。

using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
using MvcTest.Data;
using System;
using System.Linq;

namespace MvcTest.Models
{
 public static class SeedData
 {
  public static void Initialize(IServiceProvider serviceProvider)
  {
   using (var context = new MvcTestContext(
    serviceProvider.GetRequiredService<
     DbContextOptions<MvcTestContext>>()))
   {
    // Look for any tests.
    if (context.Test.Any())
    {
     return; // DB has been seeded
    }

    context.Test.AddRange(
     new Test
     {
      Title = "When Harry Met Sally",
      ReleaseDate = DateTime.Parse("1989-2-12"),
      Genre = "Romantic Comedy",
      Price = 7.99M
     },

     new Test
     {
      Title = "Ghostbusters ",
      ReleaseDate = DateTime.Parse("1984-3-13"),
      Genre = "Comedy",
      Price = 8.99M
     },

     new Test
     {
      Title = "Ghostbusters 2",
      ReleaseDate = DateTime.Parse("1986-2-23"),
      Genre = "Comedy",
      Price = 9.99M
     },

     new Test
     {
      Title = "Rio Bravo",
      ReleaseDate = DateTime.Parse("1959-4-15"),
      Genre = "Western",
      Price = 3.99M
     }
    );
    context.SaveChanges();
   }
  }
 }
}

 

Program.csを修正

「Program.cs」を以下のように修正する。

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using MvcTest.Data;
using MvcTest.Models;
using System;

namespace MvcTest
{
 public class Program
 {
  public static void Main(string[] args)
  {
   var host = CreateHostBuilder(args).Build();

    using (var scope = host.Services.CreateScope())
    {
     var services = scope.ServiceProvider;

     try
     {
      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 IHostBuilder CreateHostBuilder(string[] args) =>
   Host.CreateDefaultBuilder(args)
    .ConfigureWebHostDefaults(webBuilder =>
    {
     webBuilder.UseStartup<Startup>();
    });
 }
}

アプリを実行する

  1. テーブルのデータを消す。
  2. アプリを実行する。
  3. 「https://localhost:00000/〇〇〇s」を開いて、データが表示されればOK

-.NET Core

Copyright© プログラミングメモ , 2022 All Rights Reserved Powered by AFFINGER5.