У меня есть билетный стол и его приемники, которые являются коллекцией.Receiver - это объект значения.
Я определил все в EF Core 2.2, и все в порядке.
При вставке нового билета получатели добавляются в тикет и сохраняются.
Для обновления тикета, поскольку объекты-значения неизменны, следует ли мне обновить таблицу приемников или вставить новые получатели?
Я имею в виду так: просто обновите измененные свойства
public void AddOrUpdateReceiver(long? ticketId, long? referenceId, int responsibleId, int category, string note)
{
var existingReceiver = _receivers.FirstOrDefault(q => q.ResponsibleId == responsibleId);
if (existingReciever == null)
{
var receiver = new Receiver(ticketId, referenceId, responsibleId, category, note);
_receivers.Add(receiver);
}
else
{
existingReceiver.SetNote(note);
existingReceiver.SetReferenceId(category);
existingReceiver.SetCategory(category);
}
}
Или вот так: Вставить новую строку с новым идентификатором
public void AddOrUpdateReceiver(long? ticketId, long? referenceId, int responsibleId, int category, string note)
{
var existingReceiver = _receivers.FirstOrDefault(q => q.ResponsibleId == responsibleId);
if (existingReceiver == null)
{
var receiver = new Receiver(ticketId, referenceId, responsibleId, category, note);
_receivers.Add(receiver);
}
else
{
existingReceiver = new Receiver(ticketId, referenceId, responsibleId, category, note);
}
}