![]() |
1
2
我见过一些使用属性作为规范的流畅的API,因此它们不会向客户机添加括号噪声。
being exec()针对repo执行规范的方法。 但即使您不使用这些属性,我也会选择Fluent API,因为它的噪声最小。 |
![]() |
2
2
好吧,实际上我没有得到您的存储库实现(例如,方法
所以我有一个实体,它的规范接口和几个涉及访问者模式的实现者,它的存储库接口接受规范接口和它的存储库实现,接受一个能够将规范转换成SQL子句的访问者(但这只是一个问题 这 当然是这样)。最后,我将在存储库接口的“外部”编写规范(使用Fluent接口)。 也许这只是一个幼稚的想法,但我觉得很简单。 希望这有帮助。 |
![]() |
3
1
就我个人而言,我会选择lambda方式。这可能是因为我喜欢lambda,但它为通用存储库设置提供了很多空间。 考虑到以下因素:
我不知道您的模式是什么样子的,但是您可以在这里重构一些东西: 创建一个类型为“IRepository”的通用接口,该接口包含用于数据访问的所有方法。 它可能看起来像这样:
创建实现此接口的抽象“存储库”类:
现在,我们可以为实现“IRepository”的横幅表/对象创建一个接口,并为扩展抽象“Repository”类和实现“IBannerinterface”的具体类创建一个接口:
以及实现它的匹配存储库:
我建议使用这种方法,因为它给了您很大的灵活性和足够的能力来控制您拥有的所有微小实体。 这样调用这些方法将非常容易:
是的,这意味着你必须做一些工作,但是你以后更容易更改数据源。 希望它有帮助! |
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 5 月前 |
![]() |
CactusCake · if语句中应有分号 6 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 6 月前 |