EF Core 2.1 中数据库视图的脚手架-DbContext(查询类型)

Scaffold-DbContext for database views in EF Core 2.1 (Query Types)

EF Core 2.1 具有新功能 - 查询类型

Some of the main usage scenarios for query types are:

  • Serving as the return type for ad hoc FromSql() queries.
  • Mapping to database views.
  • Mapping to tables that do not have a primary key defined.
  • Mapping to queries defined in the model.

我将项目升级到Core 2.1,但是Scaffold-DbContext 仍然没有生成数据库视图。必须使用特殊参数还是Scaffold-DbContext不支持?

2.1 不支持。请参阅问题 #1679

这里有一个笨拙但有效的解决方案:

如何将具有数据库视图的控制器搭建到 EF Core 2.1

  1. 在数据库中创建视图。
  2. 创建一个与视图具有相同结构的 POCO。
  3. 使用步骤#2 中创建的 POCO 添加新控制器 一种。如果发生键相关错误,请在列上添加一个 Key 属性,然后在脚手架完成后删除。
  4. 应该添加一个新的 属性 和 DbSet<T>,其中 T 是在第 2 步中创建的 class。将 DbSet 更改为 DbQuery.
  5. DbContextOnModelCreating方法中,添加如下代码:

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

Source