小编ake*_*den的帖子

访问存储库的域实体

继续这些辩论:

DDD - 实体不能直接访问 Repositories 的规则

实体可以访问存储库吗?

在某些情况下,域访问存储库感觉更好。以这个例子为例,它假设我需要数据库中的 TaskStatus 表,其中包含用于报告目的的描述:

public class TaskStatus
{
    public long Id {get;set;}
    public string Description {get;set;}
}

public class Task
{
    public long Id {get;set;}
    public string Description {get;set;}
    public TaskStatus Status {get;set;}

    public void CompleteTask()
    {
        ITaskStatusReposity repository = ObjectFactory.GetInstace<ITaskStatusReposity>(); //Or whatever DI you do.
        Status = repository.LoadById(Constants.CompletedTaskStatusId);
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以拥有 CompletedTaskStatus 和 OpenTaskStatus 对象,但在某些情况下,这是不必要的,可能会导致类爆炸。

无论如何,如果不是这种事情,为什么存储库接口存储在域中?

architecture domain-driven-design ddd-repositories repository-pattern

2
推荐指数
1
解决办法
738
查看次数