web-dev-qa-db-ja.com

EF Core 2.1のデータベースビューのScaffold-DbContext(クエリタイプ)

EF Core 2.1には新しい機能Query Typesがあります。

クエリタイプの主な使用シナリオは次のとおりです。

  • アドホックFromSql()クエリの戻り型として機能します。
  • データベースビューへのマッピング。
  • 主キーが定義されていないテーブルへのマッピング。
  • モデルで定義されたクエリへのマッピング。

プロジェクトをCore 2.1にアップグレードしましたが、Scaffold-DbContextでデータベースビューが生成されません。特別なパラメーターを使用する必要がありますか、それともScaffold-DbContextがサポートしていませんか?

4
Pavel Jedlicka

2.1ではサポートされていません。問題 #1679 を参照してください。

3
bricelam

これはハックですが機能する解決策です:

EF Core 2.1にデータベースビューでコントローラーを足場する方法

  1. データベースにビューを作成します。
  2. ビューと同じ構造のPOCOを作成します。
  3. 手順2で作成したPOCOを使用して新しいコントローラーを追加します。キー関連のエラーが発生した場合は、列にKey属性を追加し、スキャフォールディングの完了後に削除してください。
  4. DbSet<T>の新しいプロパティが追加されているはずです。ここで、Tは、手順2で作成したクラスです。 DbSetDbQueryに変更します。
  5. OnModelCreatingDbContextメソッドに、次のコードを追加します。

    modelBuilder.Query<POCO from step#2>().ToView("Name of the view");
    

ソース

5
Satish Yadav