首页 > 解决方案 > EF Core 3.1 是否支持在代码优先的 DbContext 中使用 SQL 视图?

问题描述

我目前有一个使用 EF 3.1 的 ASP.NET Core 项目。我想使用 Code-First 手动构建我的大部分实体,但我还需要一个链接服务器来合并数据。我需要弄清楚如何创建一个作为此视图结果的实体模型(包括来自我已经迁移的代码优先表的左连接)。在我迄今为止的研究中,似乎因为 EF3 支持 Scaffold-DbContext 内部的视图,但我担心的是我只想搭建这个单一视图,但仍然可以访问我已经使用的同一个 DbContext 中的所有内容。我不想把事情拼凑在一起,所以请告诉我你将如何在你的项目中完成这样的任务。谢谢你的帮助!

标签: entity-frameworkasp.net-coreef-code-firstentity-framework-migrations

解决方案


看来我毕竟能够弄清楚这一点。我所做的步骤如下,但如果您知道更好或更可接受的方式,请纠正我。

  1. 将 SQL 视图选择到一个新表中,这样我就可以从中生成一个创建脚本。
  2. 将创建脚本复制到https://codverter.com/src/sqltoclass的类创建工具中,因此不必手动将 20 多个列和类型转换为类属性。
  3. 将生成的属性复制到以 SQL 视图命名的新模型类中
  4. 在我的 DbContext 类中的现有 DbSet 下添加了一个新的 DbQuery。(似乎 DBQuery 已被弃用,但我目前没有看到其他使用它的方法)并将其命名为与我的 SQL 视图相同。
  5. 从 SQL 视图模型类中搭建一个新控制器并导航到生成的索引页面以验证是否可以看到数据。(有效!)

如果您对我如何得出这个解决方案有任何更好的想法,请告诉我!


推荐阅读