EFコアについてのトークでは、データベースの移行を実装します

        プログラマーとして、日々の開発では、新鮮な道書き込みコード、アップグレードプログラムへ。アップグレードプログラムは、2つの部分を含む:まず、サービス・プログラムを更新する;第二には、データベース構造を更新することです。この投稿は、データベースのアップグレードは、公園には、以下の経験を忠実に持っているかどうか分からない場合は、データベース更新の構造について説明します。

        1)スクリプトファイルは、それが失敗した結果として、存在する場合は判断しませんtableステートメントを構築します。

        2)tableステートメントの建設中のフィールドの前にスクリプトファイルを変更し、関連するストアドプロシージャが失敗にオーダー実行とリードのうちに実行されます。

        3)各履歴スクリプト・ファイル・コードは、ストアドプロシージャのコードが複数のスクリプトファイル内に存在するように、何度も繰り返されます。

        4)新規のお客様は、多くの場合、あなたは、最新の製品を使用することができ、複数のスクリプトファイルを実行する必要があります。

        多くのプログラマは、特定のAで心臓病のチームマネージャーとなり、データベースのアップグレードが成功するかどうか、と言うことができます。次に、EFコアの使用の詳細については、データベースのアップグレードを実装します。

A.使用EFコアデータベース移行コマンドモード

1.パッケージマネージャコンソール(PMC)データベースの移行

1)エンティティ(対応するデータベーステーブル)、データベース操作、データベース接続文字列、データベース操作およびサービス準備ができています。

   。学生エンティティクラス

パブリック クラス学生
{
   公共 int型の ID { 取得しますセット; }
    パブリック 文字列姓{ 得ますセット; }
    パブリック 文字列氏名{ 得ますセット; }
}

    b。データベースの操作

パブリック クラスSchoolDB:DbContext
{
   公共 SchoolDB(DbContextOptions <SchoolDB>オプション):ベース(オプション)
{}
公共 DbSet <学生>学生{ 取得しますセット; } 保護 オーバーライド ボイドOnModelCreating(ModelBuilderのModelBuilderの){ modelBuilder.Entity <学生> ().ToTable(がNameOf(学生)); } }

   C。でデータベース接続文字列appsettings.jsonの構成

{
  "ロギング":{
    "ログレベル":{
      「デフォルト」:「情報」、
      「マイクロソフト」:「警告」、
      "Microsoft.Hosting.Lifetime": "情報"
    }
  }、
  "AllowedHosts": "*"、
  "のconnectionStrings":{
    "SchoolDB": "サーバー= ERQFJF;データベース= SchoolDB;ユーザID =寺;パスワード= ******"
  }
}

    D。スタートアップにおける射出サービスデータベース操作

公共 のボイドConfigureServices(IServiceCollectionサービス)
{
    services.AddControllersWithViews();
    services.AddDbContext <SchoolDB>((オプション)=> {options.UseSqlServer(Configuration.GetConnectionString(" SchoolDB " ));});
}

    。Eは、次の最初のコード構造とデータベース全体を、以降の処理が比較を操作しやすいです

                              全体的なアーキテクチャ

2)図のように、PMCを開き。

                             PMC

3)その後、データベースをアップグレード、反復バージョンを作成するために、PMCの関連するコマンドを入力することができます。

     。A反復バージョンを作成するコマンド移行追加:以下の表を

                            反復ファイル

       Bの更新とデータベースを使用してデータベースをアップグレードします。以下

                            データベースを更新します

                                                                              アップグレードデータベースコマンドの更新、データベース

                             オペレーティング結果

                                                                              アップグレードの結果

4)ソリッドモデルの更新(例えば、新しいエンティティ、新しいエンティティ属性は、エンティティの属性などを変更する場合)、3(データベースを達成するために)ステップを更新、データベースを使用してデータベースを更新し、)アドインマイグレーションを用いて繰り返し(イタレーションファイルを作成します(表)および手順(エンティティ)同期到達データベースのアップグレード。

2.反復文書では、下記の

                            イテレーションファイル説明

3.欠陥の説明:

       PMCは、Visual Studioだけで実行し、本番環境で使用することはできません、あなたは、本番環境でデータベースをアップグレードするためにPMCを使用することはできません。

       おそらく、データベースのスクリプトの実行にそれをエクスポートすることができます庭のクラブがあり、このアプローチは、製品の初めてのユーザーのみに適し、製品がユーザーのために使用されてきている、次の問題が存在します:

        1)このスクリプトは、任意の新しい判決、スクリプトを変更する必要がありませんでしたので、このようなテーブル、フィールドを作成するよう、直接派生使用することはできません。

        2)顧客の多くは、アップグレードされたバージョンと、各エクスポート・スクリプトに適用、矛盾している場合は一人の顧客ずつ、巨大なワークロード

        3)一部の顧客データベース・サーバの管理は、部外者が直接データベース操作を接続することができない、非常に厳格です

II。データベースの自動アップグレード

1.2つの先行ステップ、PMCと一致

    エンティティ(対応するデータベーステーブル)、データベース操作、データベース接続文字列、データベース操作およびサービス準備。

    反復アドインの移行コマンドでファイルを作成します。

2.自動DatabaseFacade.Migrate法、以下のコードを介してデータベースを更新します

                       自動アップグレード

III。概要

ダウンを通じて、基本的にデータベースのアップグレード1.はじめに。データベースの移行は何である:実際には、データベースは、データベーススキーマを更新し、アップグレードしてください。

2. PMCだけでなく、CLIに加えて、データベースをアップグレードするためのコマンドモードでは、手順は似ていますが、ない同じコマンド。以下の表は、2つの方法でコマンドを示します:

                    図2

3. DatabaseFacade.Migrate()データベースを自動的にアップグレードします。

 

 

 

 

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/jingzhe2004/p/11902068.html