0

エンティティ フレームワーク アプリケーションがあります。主に EF 規則に従っていないために、多くの問題を引き起こし始めているテーブルがあります。

古いテーブル

2 つの重要な列はRequestTypeRequestDetailIdです。要求の各タイプには、独自の ID 列があります。これらの ID はテーブル間で重複する可能性があるためRequestType、承認を要求に一意に関連付けるフィールドがあります。

この「One True Lookup Table」をApprovalテーブルと、各リクエスト テーブルの個別の多対多テーブルに置き換えて、リクエストを承認にリンクすることを計画しています。

新しいテーブル

この新しい承認テーブルを指しているリクエストがすでにいくつかあり、EF 内での動作が気に入っています。ただし、古いテーブルから新しいテーブルへの移行に苦労しています。これまでのところ、カーソルを使用して古いデータをループし、新しいApprovalテーブルに挿入し、ID ( SELECT SCOPE_IDENTITY()) を使用して多対多テーブルに挿入してきました。新しい承認レコードごとに承認 ID の値を追跡する必要があるため、カーソルが必要です。多対多のテーブルに入力できるようにします。

誰かがカーソルを必要とせずに2つの挿入を行う方法を知っているかどうか、私は興味がありました. カーソルは問題ありませんが、読みにくいです。

1 つの考えは、テーブルにリクエスト ID フィールドを一時的に追加し、リクエスト ID をApproval使用して承認を挿入し、その情報を古いテーブルに結合して多対多テーブルに入力することでした。2 つの挿入の後、リクエスト ID 列を削除します。移行を行うためだけに、null 許容のリクエスト ID 列を既存のテーブルに追加するという考えは好きではありません。

カーソルを使用せずに古いルックアップ テーブルを新しい承認/多対多テーブルに分割する方法を誰かが考えられるかどうか、私は興味がありました。

4

0 に答える 0