次のドメイン モデルがあるとします。
Project Task
- Id - Id
- Name - Name
- List<Task> - Project
プロジェクトには多くのタスクがあり、タスクには 1 つのプロジェクトがあります。
ここで、TodoListDTO データ転送オブジェクトを作成するとします。私の当初の考えは、これを行うことでした:
TodoListDTO
- List<Project>
シンプルに見えます。次に、各プロジェクト内のタスクのリストにアクセスできます。次に、DTO は可能な限りフラットにする必要があるといくつかの場所で読みました。しかし、複雑なオブジェクトを使用せずにそれをモデル化するにはどうすればよいでしょうか?
TodoListDTO の代わりに、次のような ProjectDTO を使用できます。
ProjectDTO
- ProjectId
- Name
- List<TaskId>
- List<TaskName>
しかし、TaskIds と TaskNames の個別のリストを持つことは不便に思えます。ProjectDTO に List プロパティを持つことよりも、それがどのように優れているかはわかりません。
これを処理する良い方法は何ですか?