SqlServerにEntityFrameworkでViewを作る必要が出てきたのですが、
パッと分からなかったのでいろいろ調べてみました。
EntityFrameworkではマイグレーションファイルを作るコマンドを実行すると、Migrationsフォルダ配下にマイグレーション用のファイルが作られます。
Microsoft.EntityFrameworkCore.Migrations.Migrationを継承したクラスが
自動生成されたマイグレーションファイルに書いてあります。
その中のUpメソッドの配下に下記のように書くとView(ビュー)が作れることが確認できました。
テーブル作成時のUpメソッドに追記
Microsoft.EntityFrameworkCore.Migration.MigrationBuilderのSqlメソッドを使うと、
マイグレーション時に実行される生SQLが書けるようです。
migrationBuilder.Sql(@"
CREATE VIEW view_hoge AS
SELECT
・・・SQL省略・・・
");
テーブル削除時のDropメソッドに追記
dotnet ef database drop でデータベースを削除する時に動く
DropメソッドにもViewが削除されるように書いておきました。
migrationBuilder.Sql("DROP VIEW view_hoge");
SQL直で書けるので、ストアドプロシージャとかもかけそうですね。
コメント