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