【发布时间】:2011-01-27 13:51:04
【问题描述】:
我从我的存储库中获得了一个项目列表。现在我需要对它们进行排序和过滤,我相信这会在存储库中完成以提高效率。我认为以 DDD 的方式有两种方法:
- 向存储库发送一个过滤器和一个充满条件的排序对象(这叫什么)?
- 存储库结果会产生一个带有 .filter 和 .sort 方法的对象? (这不会是 POJO/POCO,因为它包含多个对象?)。
那么答案是 1、2 还是其他?你能解释一下为什么吗?我倾向于 #1,因为 Repository 只能发送我想要的数据(或者 #2 是否能够延迟访问像 LazyList 这样的数据?)代码示例(或网站链接)会非常有帮助。
例子:
- 产品 product = repo.GetProducts(mySortObject, myFilterObject); // Poco 列表
- product.AddFilter("price", "lessThan", "3.99"); product.AddSort("price", "descending");
【问题讨论】:
标签: c# sorting filtering ddd-repositories