我有构成调度系统基础的会议对象,其中的网格视图用于显示重要信息。这是为了安排员工参加会议,并让员工查看已安排的内容。
我一直在尝试遵循 DDD 原则,但我很难知道从我的服务层向下传递到系统的表示区域的内容。这是因为时间表可能很大,实际上由系统的许多不同元素组成。例如。客户名称、地址、案例信息、组等,所有这些都是会议安排者做出决定所需要的。
除此之外,调度程序需要更改此调度中的值并将其传递回服务层(例如,从下拉列表中分配员工,可能更改组等)。因此,信息并不是真正的“只读”——它需要与之交互。IE。这不仅仅是一份报告。
我们目前的方法是从 SQL 中填充一个扁平的“调度对象”,该对象由不同域对象的一小部分构成。这是一个相当复杂的查询。进行更改后,然后将其传递回服务层,服务将检索有问题的域对象,并使用来自 DTO 的信息在域对象上触发业务方法。
我的问题是,这是正确的方法吗?IE。继续从 SQL 生成大型自定义对象,然后从服务层向下传递到感觉很像视图模型的表示层对象?
由于答案而更新
了解所涉及的实体/聚合关系的数量。(这是一个混淆的例子,所以关系在这里很重要)
客户端在一个默认组中
客户有一个未结案,但许多已结案
案例有很多会议
会议有许多分配的员工
开会有很多原因
会议可以安排到不同的组
员工可以与许多组相关联。
日程表需要加载属于与员工在同一组中的患者的未决案例中的所有会议。
调度程序可以查看客户名称、客户地址、案例信息、会议时间、会议类型、会议原因、调度组(showstrail)、分配的员工(也有隐藏的员工 ID)。
可编辑字段是分配员工下拉列表和计划组。
- 日程表可能多达 200 行。
- DTO 是从 WCF 下来的,所以域模型是在这个服务层之上访问的,而不是在下面。
- 服务基于传回的 DTO 值利用域模型业务调用,并且存储库处理插入/更新。
所以,我想更新,是使用查询来填充一个包含上述所有内容的对象,可以作为一个合并的 DTO 传递下去吗?如果没有,您将如何处理它?(给出一些对服务层的调用示例,并解释一下您如何构思 ORM 获取数据并牢记性能)