リバースエンジニアリング
1.リバースエンジニアリングは、に基づいて、エンティティタイプとクラスであるプロセスフレーム群DbContextクラスデータベーススキーマ
2.Scaffold-DbContext(コンテキストデータベース足場)
足場DbContext(コンテキストデータベース足場)コマンド生成モデル及びコンテキスト用いて
2足場:
作物プログラマ、データベース(CRUD)の動作を確立された規則に従ってコンパイラ(足場)対応するコード
3.構文:
足場DbContext [-connection] <文字列> [-provider] <文字列> [-outputdir <文字列>] [-context <文字列>]
[-Schemasの<string>] [-tablesの<string>] [-DataAnnotations] [-Force] [-Project <文字列>]
[-StartupProjectの<string>] [-Environment <文字列>] [<共通>]
4パラメーター:
[-connection <ストリング>:このデータベース・スキーマを読み取るためのデータベース接続文字列、接続文字列。
[-provider] <文字列>:第2のパラメータは、プロバイダの名前です。プロバイダ名は、例えば、一般的にパッケージ名NuGet同じプロバイダである:Pomelo.EntityFrameworkCore.MySql、Microsoft.EntityFrameworkCore。
【-outputdir <文字列>]:ディレクトリに格納されたエンティティ・クラス・ファイル
[-context <文字列>]:ベースフレームDbContextクラスのクラスからのエンティティのタイプに別個のディレクトリを作成します。
【-Schemas <文字列>]:スキーマ内の各表の
[-tables <文字列>]:たとえば、テーブルを指定:DbContext ...は足場アーティスト、アルバム-tables
予約名:[-DataAnnotations]をデータベースの元の名前が無効修復合成および.NET識別子名を残る、ナビゲーション属性は、命名規則.NET従います
更新モデル:[-Force]
[-Project <文字列>]:ベースフレームDbContextを築いてきましたが名サフィックスデータベースのデフォルトのコンテキストとしてクラス名。-context異なる使用を指定するには
、[-StartupProject <文字列>]:私は、プロジェクトを開始するために使用します。省略した場合、解決策は、使用してプロジェクトを開始することである
[-Environment <文字列>]
[<共通>]の
5作品
データベーススキーマのリバースエンジニアリングの初めにお読みください。これは、テーブル、列、制約、およびインデックスに関する情報を読み取ります。
次に、EFコアモデルを作成するために、情報アーキテクチャを使用しています。テーブルがエンティティタイプを作成するために使用され、プロパティを作成するためにカラムを使用します。そして、外部キーは、関係を作成するために使用されています。
最後に、モデルはコードを生成するために使用されます。対応するエンティティ型クラス、流暢APIおよびデータアノテーションは、アプリケーションからの同じモデルを再作成するために、ベースフレームを構築してきました。
6.無効
タイプおよびテーブルに関連する固有情報の継承階層は、データベース・スキーマが存在しない分割
プロバイダEFコアによってサポートされない可能性があり、いくつかの列タイプ
現在リバースエンジニアリングされない主キーなしでテーブル。
7.取り付けアセンブリ
--MySQLバージョン:
MySql.Data.EntityFrameworkCore
Pomelo.EntityFrameworkCore.MySql
Microsoft.EntityFrameworkCore.Tools
Microsoft.VisualStudio.Web.CodeGeneration.Design
--SQLServiceバージョン:
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore .Tools
Microsoft.VisualStudio.Web.CodeGeneration.Design
8.次の文生成プログラムエンティティクラス袋Managerコンソール
--MySQLバージョン:
最初のエンティティクラスを生成します:
足場-DbContext "サーバー= 127.0.0.1;ポート= 3306;データベース=デシベル;ユーザー=ルート;パスワード=ルート;" Pomelo.EntityFrameworkCore.MySql -outputDirモデル
更新实体类:
足場-DbContext "サーバー= 127.0.0.1;ポート= 3306;データベース=デシベル;ユーザー=ルート;パスワード=ルート;" Pomelo.EntityFrameworkCore.MySql -outputDirモデル-Force
--SQLServiceバージョン:
最初のエンティティの生成:
足場-DbContext "サーバー= 127.0.0.1; PORT = 3306;データベース= DB;ユーザー=ルート;パスワード=ルートを、"モデルMicrosoft.EntityFrameworkCore.SqlServer -outputdir
更新エンティティクラス:
足場-DbContext "サーバー= 127.0.0.1;ポート= 3306;データベース=デシベル;ユーザー=ルート;パスワード=ルート;" Microsoft.EntityFrameworkCore.SqlServer -outputDirモデル-Force