0

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

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

?productName=test&orderId=2

到目前为止,我使用放置在 DTO 上的自定义属性(可以过滤的属性)并在引擎盖下将其转换为标准 API(使用反射和一些奇怪的技巧..)

我已经阅读过有关 OData 的信息,但如果我正确理解它基于 IQuerable(并且对 nHibernate 的支持不佳)。

您对此有何看法?

4

1 回答 1

0

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

于 2013-01-26T20:48:27.790 回答