ASP.NET Core MVC(3)モデルModelおよびベースツール


https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/first-mvc-app/adding-model?view=aspnetcore-3.1&tabs=visual-studio
この章では、MVCのM、つまりModelについて認識し始めます.Entity Framework Coreは、javaのMyBatisやHibernateのようなマイクロソフトが開発者に提供するORMフレームワークです.Plain Old CLR Objects(POCO)クラスを直接データベース内の添削改ざんの操作コードに変換し、重複開発コード量を減らすことができます.
POCOという種類は,属性のみでメソッドがないクラスであり,データを純粋に表し,データベースとのマッピングに利用できる.
EF CoreライブラリはPOCOクラスのみを書くように要求され、これらのクラスに基づいて自動的にデータベースに対応するテーブルを確立し、関連する削除変更を行うことができます.
新規モデル
Movie.cs
using System;
using System.ComponentModel.DataAnnotations;

namespace MvcMovie.Models
{
    public class Movie
    {
        public int Id { get; set; }
        public string Title { get; set; }

        [DataType(DataType.Date)]
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }
}

EFCore SqlProviderのインストール例開発環境に特化したsql serverデータベースとしてSqlServer Localデータベースを使用するため、EFcoreライブラリで使用するsqlServerのProviderライブラリをインストールする必要がある、Toolsツール>NuGetパッケージマネージャ>パッケージマネージャコンソール(PMC)を選択する.
Install-Package Microsoft.EntityFrameworkCore.SqlServer

Providerをインストールする場合、依存するため、EFCoreライブラリも自動的にインストールされます.
データベースコンテキストを作成するデータベースコンテキストとは、EFCoreに、どのクラスを通じてテーブルデータを構築する必要があるか、およびテーブル内のクラスの削除を変更する必要があるかを示すことです.Dataフォルダを作成し、MvcMovieContext.csを追加し、コードを追加します.
using Microsoft.EntityFrameworkCore;
using MvcMovie.Models;

namespace MvcMovie.Data
{
    public class MvcMovieContext : DbContext
    {
        public MvcMovieContext (DbContextOptions options)
            : base(options)
        {
        }

        public DbSet Movie { get; set; }
    }
}

EFCoreに必要なコンテキストは、DbContextをベースクラスとし、DbSetはデータベース内のテーブルに対応し、エンティティオブジェクトは1行のレコードに対応するセットを表す必要があります.ここでMovieはDbSetタイプであるため、テーブル名はMovieであり、DbSetにはMovie、すなわち我々がカスタマイズしたタイプであり、1行の記録に対応する構造が格納されている.
登録データベースコンテキストASP.net coreは基本的に依存注入の技術思想を使用している.EFCore DBContextはサービスとして登録して使用する必要があります.Startup.csに登録し、次の2行のコードを追加します.
using MvcMovie.Data;
using Microsoft.EntityFrameworkCore;

次に、次のような斜体のコードをConfigureServicesに追加します.
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews();
*
    services.AddDbContext(options =>
            options.UseSqlServer(Configuration.GetConnectionString("MvcMovieContext")));*
}

Configuration.GetConnectionsString(「MvcMovieContext」)は、ファイルappsettings.jsonからデータベース接続文字列を取得します.appsettings.jsonにkey:valueを追加
"ConnectionStrings": {
    "MvcMovieContext": "Server=(localdb)\\mssqllocaldb;Database=MvcMovieContext-1;Trusted_Connection=True;MultipleActiveResultSets=true"
  }

土台を作る
これは、常に関連付けられている開発ステップのセットを全体的に作成するためのツールです.たとえば、モデルを作成したり、コントローラを作成したりします.一般的には、追加削除や対応ビューなどの開発操作が必要です.この機能により、一歩で構築できます.労働を繰り返す必要はない.右クリックControllers「追加」>「新規構築ベースプロジェクト」を選択し、Entity FrameWorkのMVCを選択します.ポップアップダイアログボックスでModel classを選択し、コンテキストでMvcMovieContextを選択します.その他はデフォルトです.次に、ベースツールによって2種類のものが作成されます.
1. Controller: Controllers/MoviesController.cs
2. View:Views/Movies/*.cshtml   (Create, Delete, Details, Edit, and Index)

すなわち,ModelとMvcMoviewContextコンテキストにより,MVCに残っているVCの2種類のコードをすべて自動作成した.この過程でマイクロソフトが与えた英語はscaffoldingです
データベースMVCの準備ができています.次に、データベースを作成し、対応するテーブルを作成します.この操作は、Initial migrationと呼ばれています.中国語翻訳の場合は、初期化移行と呼ぶべきです.migrationはEF coreの機能です.ModelをDBContextコンテキストを介してデータベースにマッピングし、データベース内のテーブル構造を同期するために使用します.パッケージマネージャコンソール(PMC).では、次のように実行します.
Add-Migration InitialCreate
Update-Database

最初の行は、mvcDBContextに基づいてMigrations/{timestamp}_を生成します.InitialCreate.csファイル.2番目の文を実行すると、Migrations/{time-stamp}_が実行されます.InitialCreate.csファイルのupメソッド.
今まで完成した.MVCと対応するデータベースを新規作成するプロセスが完了しました.実行して、http://localhost:59191/Movies 訪問に来る.