DAL: 仓库边界问题

3
有一个DAL库,其中包含数十个存储库。每个实体都有一个存储库。有PersonRepositoryPhotoRepository
当我向存储库添加新方法并且该方法涉及实体时,我很清楚应该将其放在哪里。如果我想创建CreatePerson,我会创建PersonRepository::Create(...),或者当我需要更新照片时,我会创建PhotoRepository::Update
但是,当方法涉及实体关系时,事情有时会变得模糊。例如,我应该创建PersonRepository::AssignPhoto(PersonId, PhotoId)还是应该创建PhotoRepository::AssingToPerson(PhotoId, PersonId)
如果对我来说事情很清楚(我认为人比照片更重要,所以我会创建PersonRepository方法),则一些开发人员可能找不到适当的方法,并倾向于在PhotoRepository中创建副本。
如何最小化此问题?
也许您可以同时创建两种方法(PersonRepository::AssignPhotoPhotoRepository::AssignToPerson)(其中一种方法将调用委托给另一种实现方法)?或者我们团队应该有强大的存储库方法命名约定?或者我应该改变对存储库边界的处理方式?
1个回答

0
在面向对象的世界中,我会有一个名为“Person”的对象,并带有一个名为“AssignPhoto”的方法。
对于处理存储库中的对象关系操作,对我来说感觉像是一种过程式的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接