1
2
如果我正确理解该方法,它将基于主键返回任何类型T的单个记录。 我们还有一个通用存储库,但界面如下:
以及我们的通用存储库实现:
因此,要获得“Post”的等效单记录:
这与原始代码大不相同,因为调用代码指定主键是什么(或标识唯一记录的方法)。 老实说,尝试基于一个固定的主键值动态地获取一个唯一的记录是非常疯狂的- 如果是复合键呢? 我看不出那代码是怎么工作的。 很高兴看到其他答案,但我会保持简单。 如果你想让代码获取基于T的实体集,我可以共享它——但它非常简单。 如果希望方法获取单个记录,请让调用代码提供谓词/键:
然后,如果例如“Post”有一个组合键“PostName”和“PostType”:
在您的示例中,存储库正在指示您的模型,使每个实体都有一个列主键。 您的存储库应该 帮助 你的模型,而不是定义它。
编辑-代码
很简单,很安全,因为
你的
哦。 |
Veotani · 如何注册通用存储库的依赖关系? 6 年前 |
topcool · Asp核心,对象引用未设置为存储库模式中对象的实例 6 年前 |
lastone · 为什么我的迁移导致“#<ActiveRecord::ConnectionAdapters::MySQL::TableDefinition”的“NoMethodError:undefined方法'jsonb”? 6 年前 |
Inmpri · Github在我的项目上使用基本回购 6 年前 |
jenson4 · 如何通过存储库获取id? 6 年前 |
Gauthier Delvaulx · 在macOS上查找git存储库 6 年前 |