エンティティフレームワーク-ビュー

ビューは、事前定義されたクエリによって取得されたデータを含むオブジェクトです。ビューは、結果セットがクエリから派生した仮想オブジェクトまたはテーブルです。データの列と行が含まれているため、実際のテーブルと非常によく似ています。以下は、ビューのいくつかの典型的な使用法です-

  • 基になるテーブルのデータをフィルタリングする
  • セキュリティ目的でデータをフィルタリングする
  • 複数のサーバーに分散されたデータを一元化
  • 再利用可能なデータセットを作成する

ビューは、テーブルを使用するのと同じように使用できます。ビューをエンティティとして使用するには、最初にデータベースビューをEDMに追加する必要があります。モデルにビューを追加した後、作成、更新、および削除操作を除いて、通常のエンティティと同じ方法でモデルを操作できます。

データベースからモデルにビューを追加する方法を見てみましょう。

Step 1 −新しいコンソールアプリケーションプロジェクトを作成します。

Step 2 −ソリューションエクスプローラーでプロジェクトを右クリックし、「追加」→「新規アイテム」を選択します。

Step 3 −中央のペインから[ADO.NETエンティティデータモデル]を選択し、[名前]フィールドに名前ViewModelを入力します。

Step 4 − [追加]ボタンをクリックして、[エンティティデータモデルウィザード]ダイアログを起動します。

Step 5 −データベースからEF Designerを選択し、[次へ]ボタンをクリックします。

Step 6 −既存のデータベースを選択し、[次へ]をクリックします。

Step 7 − Entity Framework 6.xを選択し、[次へ]をクリックします。

Step 8 −データベースからテーブルとビューを選択し、[完了]をクリックします。

ビューが作成されていることをデザイナウィンドウで確認でき、プログラムでエンティティとして使用できます。

ソリューションエクスプローラーでは、MyViewクラスもデータベースから生成されていることがわかります。

すべてのデータがビューから取得される例を見てみましょう。以下はコードです-

class Program {

   static void Main(string[] args) {

      using (var db = new UniContextEntities()) {

         var query = from b in db.MyViews
            orderby b.FirstMidName select b;

         Console.WriteLine("All student in the database:");

         foreach (var item in query) {
            Console.WriteLine(item.FirstMidName + " " + item.LastName);
         }

         Console.WriteLine("Press any key to exit...");
         Console.ReadKey();
      }
   }
}

上記のコードを実行すると、次の出力が返されます。

All student in the database:
Ali Khan
Arturo   finand
Bill Gates
Carson Alexander
Gytis Barzdukas
Laura Norman
Meredith Alonso
Nino Olivetto
Peggy Justice
Yan Li
Press any key to exit...

理解を深めるために、上記の例を段階的に実行することをお勧めします。