带有 EF Core / ASP.NET Core 的 OData - 好还是坏?

OData with EF Core / ASP.NET Core - Good or Bad?

我阅读了很多有关使用 EF Core / ASP.NET Core 的 OData 的信息。 在我看来,每个人对此都有自己的看法并且它变得有点混乱,所以冒着听起来很愚蠢的风险,我有几个问题:

请注意:
!我不是在谈论带有 EF6 的经典 ASP.NET 4.6 或 4.7!
!我说的是 ASP.NET Core 和 EF Core!

  1. 正在考虑构建 API - 是否存在单独使用 EF Core 无法像使用 OData 处理 EF Core 那样处理的问题?

  2. 考虑构建 API - 构建干净的 RESTful APIs 而不是 OData 样式 APIs 不是更好吗?

  3. 实现 OData 东西不是为了方便而牺牲最佳实践吗?

  4. 长期呢? ASP.NET Core + EF Core 不是在考虑速度和效率的情况下构建的,因此它们自己不会更快、更高效吗?

我将使用我在 Pluralsight 上找到的 Shawn Wildermuth's advice

OData means that queries are on the client so that versioning OData services becomes risky and it feels like MS is moving away from it so I don't have confidence in the long-term viability of it either.

ASP.NET Core/EF 核心上的 OData 运行良好。版本控制可以通过微软版本控制 api 来完成。 我不一定会看到 MS 放弃这项技术。主要 api(ms 图)与 odata 4 兼容。

在 EF Core 上使用 Odata 对于许多用例来说真的很有趣。特别是我非常喜欢的查询部分。 为了实现 writes/commands,我通常回退到 webapi/Mediatr。

这里 https://www.jannikbuschke.de/blog/cqrs-with-mediatr-and-odata/ and here https://www.jannikbuschke.de/blog/odata-getting-started/ 我写了一些关于这个主题的 thoughts/guides。

一个缺点是工具和社区。那里没有很多。