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

Posted

技术标签:

【中文标题】带有 EF Core / ASP.NET Core 的 OData - 好还是坏?【英文标题】:OData with EF Core / ASP.NET Core - Good or Bad? 【发布时间】:2017-12-02 19:23:08 【问题描述】:

我已经阅读了很多关于 EF Core / ASP.NET Core 的 OData。 在我看来,每个人对此都有自己的看法,而且这有点令人困惑,所以冒着听起来很愚蠢的风险,我有几个问题:

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

    考虑构建 API - 是否有单独的 EF Core 无法像使用 OData 的 EF Core 一样处理的东西?

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

    实施 OData 是否会为了方便而牺牲最佳实践?

    长期呢? ASP.NET Core + EF Core 的构建不是考虑了速度和效率,因此它们本身不会更快更高效吗?

【问题讨论】:

【参考方案1】:

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

在 EF Core 之上使用 Odata 对于许多用例来说真的很有趣。尤其是我非常喜欢的查询部分。 为了实现写入/命令,我通常会使用 webapi/Mediatr。

这里https://www.jannikbuschke.de/blog/cqrs-with-mediatr-and-odata/ 和这里https://www.jannikbuschke.de/blog/odata-getting-started/ 我写了一些关于这个主题的想法/指南。

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

【讨论】:

【参考方案2】:

我会选择我在 Pluralsight 上找到的 Shawn Wildermuth's advice:

OData 表示查询在客户端上,以便 对 OData 进行版本控制 服务变得有风险,感觉就像MS正在远离它所以 我对它的长期生存能力也没有信心。

【讨论】:

以上是关于带有 EF Core / ASP.NET Core 的 OData - 好还是坏?的主要内容,如果未能解决你的问题,请参考以下文章

带有 EF Core 的 ASP.NET Core - DTO 集合映射

带有 EF Core 更新实体的 ASP.Net 核心 Web Api 如何

.NET Core 1.0ASP.NET Core 1.0和EF Core 1.0简介

如何在现有数据库 ASP.NET Core MVC 和 EF Core(DB-First)中使用 Identity

带有标识 2 和 EntityFramework 6(Oracle)的 ASP.NET Core MVC

ASP.NET Core 使用 EF Core