在 ASP.NET 核心 MVC 中使用 ORM 的正确方法?

Right way to use ORM in ASP.NET Core MVC?

一个没有经验的网络开发人员大声求助!

简介

我正在开发一个 MVC 网络应用程序(使用 ASP.NET 核心,因为我对它很感兴趣)。 在后端,有一个 MSSQL 服务器和相当复杂的数据库(数千个表)。 在我的项目中,我想根据用户的查询(发送表单请求)在视图(在表中)中显示部分 public 数据,然后允许用户下载数据(CSV,XML).

架构挑战

首先,我开始使用 Entity Framework,但后来意识到根本无法将我所有的 SQL 语句转换为 LINQ。原因是最简单的查询包含几个 INNER JOINS 和 LEFT JOINS 和 SELECT 语句以及无数个表。

我打算构建一个 REST API,以 JSON 格式发送数据。就 .NET Core MVC 而言,我可以将我的 API 控制器与我的表示层放在同一个项目中。

这是我唯一有经验的部分,使用 MVC 5 构建 Web 应用程序。

大斗争

在这个项目中,我不会操作数据,只会读取数据并将其呈现给用户。我知道使用不同模型 class(域、实体、视图模型)

的准则

我现在做的,估计是错的:

题终于来了

更新编辑:

在我的 SQL 查询中,我必须创建 LINQ 不支持的临时表。有什么建议吗?

如果这个问题将被标记为体系结构问题而不是编程问题,请接受我的道歉,并请将我引到合适的论坛以获得帮助。

非常感谢!

您会发现 LINQ 查询比 SQL 更容易理解和调试。将数据访问层作为一个单独的项目,并对查询进行单元测试。为了遵守 SOLID 原则,不要将数据层与 api 混合。如果您刚刚起步,EF Core 可能比 EF6 更好,主要是因为速度和便携性。