到目前为止,我还没有找到对我的问题的答案,我想我有一段时间要问我的第一个问题。开始。从业务层中的数据访问层过滤结果
我有一个数据访问层,负责与各种数据存储元素进行交互,并在查询事物时返回POCO或POCO集合。
我有一个位于此之上的业务层,负责实现从数据访问层返回的对象的业务规则。
例如,我有一个SQL Table of Dogs,我的数据访问层可以返回那个Dog列表作为一个Dog对象的集合。然后,我的业务层将执行诸如筛选低于特定年龄段的狗,或根据业务规则必须发生的任何其他过滤或转换。
我的问题是这样的。根据相关记录处理过滤对象的最佳方法是什么?假设我希望所有拥有猫的人。现在我的数据访问层可以返回所有的猫和所有的人,但是不会为我做任何过滤。
我可以通过不同的数据访问方法实现滤波(即DAO.GetCatPeople()),但是这可能会变得复杂,如果我有相关的属性或关系的多种处理
我可以从两个都返回并在业务层完成自己的所有匹配,这看起来像很多额外的工作,并没有充分利用SQL服务器。
我可以写一个数据过滤接口,如果我的数据访问层发生变化,这个层也必须改变。
这里有一些已知的最佳实践,我可以从中受益吗?