我在我的域中有一个实体,需要跟踪其状态。我为此有一个处理程序。此状态类似于“进行中”,“已完成”或“已删除”。我使用SQL API CosmosDb来存储这些数据。在CosmosDb中,我为创建的实体创建了一个容器,为状态创建了一个容器。因此,在代码内部,我为这两个容器有两个存储库。
internal interface EntityRepository
{
Task AddAsyns(Entity entity);
}
internal interface EntityStatusRepository
{
Task AddAsync(EntityStatus entityStatus);
}
并且为每个存储库,我创建了一项服务
public interface EnityService
{
Task AddAsync(Entity entity);
}
public interface EntityStatusService
{
Task AddStatusAsync(EntityStatus entityStatus)
}
这些服务已公开为处理程序的公共接口,而不是存储库。
现在我真的很奇怪
我想知道是否有人提出建议甚至更好的解决方案?
我不是DDD专家-只是通过Implementing DDD
来阅读Vernon
,但是根据我的经验,您对bounded context
有问题。您的模型Entity
和EntityStatus
可能密切相关。在这种情况下,仅当您自己需要一个EntityStatusRepository
的地方时,才应创建EntityStatuses
。如果您都需要它们,只需单击EntityRepository