Извините, если он дублируется, я много искал в SO, но я не нашел совпадающий вопрос.Могу ли я обновить несколько экземпляров совокупности одного типа в одной транзакции?
Я знаю, что мы не должны обновлять несколько экземпляров совокупности в одной транзакции. Тем не менее, я думаю, что «множественные совокупные экземпляры» здесь означают множественный экземпляр разных типов агрегатов. Я прав?
Say, Продукт и BacklogItem два различных агрегатов, поэтому мы должны избегать обновления продукта и для BacklogItem в одной транзакции.
Но что делать, если мне нужно обновить несколько экземпляров того же типа агрегата? Скажем, мне нужно обновить все продукты 'name. Каков наилучший способ справиться с этим?
псевдокод
//Application Service
public void ChangeTitle(string newName)
{
using(uow.BeginTransaction())
{
IEnumerable<Product> products = repo.GetAll();
foreach(var product in products)
{
product.ChangeName(newName);
}
}
}
Нет, вы не можете. Если вам нужно это сделать, то границы вашего Агрегата ошибочны. –
@ConstantinGALBENU Не обязательно. Бывают случаи, когда может быть приемлемым нарушение правила и масштабируемость торговли для обеспечения сильной согласованности. – plalx