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

Pav*_*cka 5 asp.net-core ef-core-2.1

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

查询类型的一些主要使用场景是:

  • 用作临时 FromSql() 查询的返回类型。
  • 映射到数据库视图。
  • 映射到没有定义主键的表。
  • 映射到模型中定义的查询。

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

Sat*_*dav 5

这是一个骇人听闻但有效的解决方案:

如何将带有数据库视图的控制器脚手架到 EF Core 2.1

  1. 在数据库中创建视图。
  2. 创建一个与视图结构相同的 POCO。
  3. 添加一个在步骤#2 a 中创建的带有 POCO 的新控制器。如果出现key相关的错误,则Key在列上添加一个属性,然后在脚手架完成后删除。
  4. DbSet<T>应该T在第 2 步中创建的类的位置添加了一个新属性。更改DbSetDbQuery
  5. OnModelCreating方法中DbContext,添加如下代码:

    modelBuilder.Query<POCO from step#2>().ToView("Name of the view");
    
    Run Code Online (Sandbox Code Playgroud)

来源


bri*_*lam 3

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