gpt4 book ai didi

asp.net-web-api - 将 OData 查询转换为 SQL

转载 作者:行者123 更新时间:2023-12-05 07:56:39 28 4
gpt4 key购买 nike

我在 ODataController 中并且我有一个 ODataQueryOptions(以及所有其他部分)。

我知道数据的来源是SQL Server中的一张表。

但是,我的 EF 模型(WEB API 框架使用它来将 HTTP 请求路由到我的 Controller )是无类型的,即我没有 POCO 类。

通常情况下——如果我有一个 POCO 类——框架会神奇地从 OData 查询中编写 SQL,这样分页、过滤和排序就在数据库上完成,而不是在 Web 服务器的内存中完成。您可以在 DbContext 上使用 Database.Log 来查看从涉及 POCO 类的 LINQ 语句生成的 SQL。

我如何让这件事发生在我身上?我有 EF 模型,我有 OData 请求,但如何组合它们来查询 SQL Server?

最佳答案

我写了一个package将 OData 查询转换为可用于直接查询底层数据库的 IQueryable 对象。您仍然需要提供有关表的元数据,但它可以在运行时传递,而不需要 POCO。

就生成 SQL 而言,返回的 IQueryable 对象是 EntityFramework ObjectQuery 对象,因此您可以调用 ToString() 来显示 SQL,但目前无法检索参数和关联值,因此您最好使用生成的 IQueryable 直接查询数据库。

关于asp.net-web-api - 将 OData 查询转换为 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28372999/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com