基于 DTO 的 ASP Web.Api 数据过滤器

本文关键字:Api 数据 过滤器 Web ASP DTO 基于 | 更新日期: 2023-09-27 17:56:15

我有架构问题。我有 Restfull api 和 ddd,我想允许用户过滤数据的最佳方法是什么(我使用 nhibarnate 作为 ORM)。

我想允许用户编写查询字符串示例:

?产品名称=测试&订单 Id=2

到目前为止,我使用放置在 DTO 上的自定义属性(可以过滤的属性)来执行此操作,并在后台将其转换为标准 API(使用 refletion 和一些奇怪的技巧......

我已经读过关于OData的文章,但如果我理解它基于IQuerable(并且对nHibernate的支持很差)。

你对此有何看法?

基于 DTO 的 ASP Web.Api 数据过滤器

Aspnet Web API OData 也公开了 ODataQueryOptions。可以将 OData 查询绑定到 ODataQueryOptions 进行建模,以获取查询的 AST(抽象语法树)表示形式,然后可以遍历该表示形式以转换为 nHibernate 查询方法。