【发布时间】:2021-04-08 20:14:31
【问题描述】:
我在 .NET 5 上获得了一个使用 Entity Framework Core 制作的 API。
带有方法的查询 URL 类似于 GET https://api.mydomain.ch/v1/applicationusers
这将检索所有应用程序用户(这是有道理的)。
在 C# 中是这样的:
[HttpGet]
public async Task<ActionResult<ApplicationUser>> Get()
{
return Ok(await _applicationUserRepository.GetAll());
}
现在使用我的 API 的客户端想要请求:GET https://api.mydomain.ch/v1/applicationusers?$filter=startswith(givenName,'Peter')
我已经看到这与 Microsoft Graph API 及其查询参数相匹配。我的客户也想为此使用其他实现 (https://docs.microsoft.com/en-us/graph/query-parameters)
我找不到任何适用于 Entity Framework Core 的实现示例。是否可以通过简单的方法实现这一点,而不是对数据库进行大的修改?
我需要完全自己实现这些功能吗?或者在这些查询参数函数和 Entity Framework Core 之间是否有微软的支持?
【问题讨论】:
-
嗯,从 MS Graph 而不是从数据库获取用户信息将是一个根本 变化......基本上,您的数据库将不再用于全部,对于任何与用户相关的信息 - 所有信息都将来自 MS Graph(以及您拥有的任何用户数据存储 - 例如 Azure Active Directory)。 .....不确定这是否是实现这个的“简单方法”......
-
@marc_s 所以你认为(或者可能你知道)没有简单的方法(或任何方法)只使用图形查询参数并“解析”它们以将它们与 ef 核心数据库结合起来?
-
好吧,如果您“只是”想要 MS Graph 提供的漂亮功能(例如能够排序和过滤) - 您可以随时查看如何制作自己的服务(
api.mydomain.ch)支持 OData 协议——这就是使这些事情成为可能的“魔力”。 -
@marc_s 啊,这听起来像是个主意...有点努力,但可能仍然比以旧方式实现这些查询参数节省更多时间:)
标签: c# entity-framework-core .net-5 query-parameters microsoft-graph-sdks