DAL:存储库边界问题

时间:2010-07-27 10:20:22

标签: .net language-agnostic data-access-layer

有DAL库暴露了十几个存储库。每个实体一个存储库。有PersonRepository& PhotoRepository

当我向存储库添加新方法并且方法处理实体时,显而易见的是我必须放置它。如果我想要CreatePerson,我会创建PersonRepository::Create(...)或当我需要更新照片时,我会创建PhotoRepository::Update

但是当方法处理实体关系时,事情有时会变得蒸熟。我应该创建PersonRepository::AssignPhoto(PersonId, PhotoId)还是创建PhotoRepository::AssingToPerson(PhotoId, PersonId)?

如果事情对我来说很清楚(我认为Person是比Photo更重要的实体,所以我将创建PersonRepository方法),一些开发人员找不到合适的方法,并倾向于在PhotoRepository中创建重复项。

您如何最小化此问题?

可能是您同时创建了两种方法(PersonRepository::AssignPhoto& PhotoRepository::AssignToPerson)(一种方法委托给另一种方法调用它)?或者我们是否应该在团队中使用强大的存储库方法命名约定?或者我可能会改变存储库边界的方法?

1 个答案:

答案 0 :(得分:0)

在面向对象的世界中,我有一个带有方法 AssignPhoto 的Person对象。

处理对象关系对存储库的操作感觉就像一个程序方法,至少对我而言。

相关问题