リバースエンジニアリング(Scaffolding)
リバースエンジニアリング(スキャフォールディングとも呼ばれる)は、PingOne スキーマからコンテキストクラスとエンティティクラスを自動生成することで、EF Core モデルの作成を効率化します。 これには、DbContext を拡張し、利用可能なテーブルとビューを表すDbSet プロパティを公開するCData Context クラスを含みます。
スキャフォールディング
スキャフォールディングは、Visual Studio のパッケージマネージャーコンソール(PMC)を使用して実行されます。 以下のコマンドは、ライブPingOne データソースからEF Core モデルをスキャフォールディングする方法を示しています。
すべてのテーブルのスキャフォールディング
次のコマンドを使用して、すべてのテーブルとビューをModels フォルダにスキャフォールディングします。
Scaffold-DbContext "AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;WorkerAppEnvironmentId=eebc33a8-xxxx-4f3a-yyyy-d3e5262fd49e;Region=NA;OAuthClientId=client_id;OAuthClientSecret=client_secret;" CData.EntityFrameworkCore.PingOne -OutputDir Models -Context PingOneContext
テーブルのサブセットのスキャフォールディング
スキャフォールディングプロセスを絞り込んで、限られた範囲のテーブルに対してのみクラスを作成することができます。
これは、大規模なスキーマで生成する必要があるクラス数が多いためにスキャフォールディングに長時間かかる場合に便利です。
これは、PMC のScaffold-DbContext コマンドの最後に、スキャフォールドするテーブル/ビューを指定することによって実現されます。
Scaffold-DbContext "AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;WorkerAppEnvironmentId=eebc33a8-xxxx-4f3a-yyyy-d3e5262fd49e;Region=NA;OAuthClientId=client_id;OAuthClientSecret=client_secret;" CData.EntityFrameworkCore.PingOne -OutputDir Models -Context PingOneContext -Schema Administrators -Tables Users
データモデルの更新
更新されたテーブルやスキーマの変更で既存のモデルを更新するには、スキャフォールディングコマンドに-Force 引数を追加します。 これにより、以前に生成されたモデルファイルが上書きされます。