我需要一些关于服务和仓库界限的建议。
在IT技术方面,这是关于如何管理代码库和提供的服务之间的关系的问题。public class Contact
{
public Guid Id {get;set;}
public string Username {get;set;}
public Guid? AvatarId {get;set;}
public Avatar Avatar {get;set;}
}
public class Avatar
{
public Guid Id {get;set;}
public string FullSizeImagePath {get;set;}
public string ThumbnailSizeImagePath {get;set;}
}
假设Avatar模型仅用于Contact模型,并且它是联系人的可选属性。那么,我的存储库是否应负责向联系人添加Avatar,还是业务/服务层应扩展该功能?有人可能会认为,拥有头像是业务要求,但由于它是模型的一部分,数据层应知道如何处理它。
我建议我们通过存储库添加添加/更新和删除Avatar的功能。业务/服务层将负责保存物理文件、验证和调用存储库上适当的方法。存储库只关心将适当的联系人附加到并向其添加Avatar。
我的思路是,由于头像仅在联系人上使用,因此我们将扩展存储库,并因此将功能添加到DAL中。这对于单独的API可能很有用。
Avatar
进行映射。 - Yuck