2
通過我在實現CQRS/ES(我意識到它們不一定相互綁定)中所做的研究,我還沒有看到完整的對象傳遞給一個命令。在應用CQRS/ES時傳遞完整對象
例如,爲什麼我不應該採取的參數,請錯誤一個bug跟蹤API中,像這樣:
[HttpPost]
public IActionResult CreateBug([FromBody] Bug bug)
{
if (!ModelState.IsValid) {
return new HttpStatusCodeResult(400);
} else
{
commandHandler.Handle(new OpenBug(bug));
return new HttpStatusCodeResult(201);
}
}
凡OpenBug是命令:
public class OpenBug : ICommand
{
public Guid Id { get; set; }
public Models.Bug NewBug { get; set; }
public OpenBug(Models.Bug bug) {
Id = Guid.NewGuid();
NewBug = bug;
//Create BugOpened Event here (and add to event sequence?)
}
}
從我所看到的情況來看,它的處理方式通常是這樣的:
commandHandler.Handle(new OpenBug(bug.Description, bug.Fixed));
然後在別處構建。
這是否有特定的原因?當然,我在這裏錯過了一些東西,或者做錯了一些事情。
謝謝。它具有很大的意義,以這種方式來看待它。 – 2015-04-05 22:16:05