Scaffoldを使用してEntityを自動生成する

NuGetパッケージの管理で必要なパッケージを導入するで必要なパッケージをインストールしたらScaffoldを使用してEntityを自動生成してみる。

パッケージマネージャーコンソールで以下のコマンドを入力する。

Scaffold-DbContext '【接続文字列】' Microsoft.EntityFrameworkCore.SqlServer -o model -f

-oオプションは出力先フォルダで省略すると他のプロジェクトファイルと同じフォルダに出力されるのでmodelフォルダなどを作成してそこに格納するとよい。

-fオプションを指定しないとテーブル構成を修正して再実行するときに既に存在すると警告され上書きをしてくれないので指定するとよい。コマンド実行前にコンパイルをするので手動削除するとコンパイルが通らなくなる場合があるのでので注意。それならば上書きオプションを指定するほうが良い。

-Tables “テーブル名1”,”テーブル名2” などとして対象テーブルを指定することができる。

自動生成されたコード

テーブルに論理名(コメント)を設定しておけばXMLコメントも自動的に生成される。

using System;
using System.Collections.Generic;

namespace AddressBook.model;

/// <summary>
/// 市区町村名マスタ
/// </summary>
public partial class MstCity
{
    /// <summary>
    /// 行政区域コード
    /// </summary>
    public string GovCode { get; set; } = null!;

    /// <summary>
    /// 都道府県名
    /// </summary>
    public string Pref { get; set; } = null!;

    /// <summary>
    /// 市区町村名
    /// </summary>
    public string City { get; set; } = null!;

    public virtual ICollection<MstZip> MstZips { get; set; } = new List<MstZip>();
}

トップページ

コメント

タイトルとURLをコピーしました