общем, встала задача сделать логгирование изменений сущностей, в когде я извлекаю "старое" значение, до применения .SaveChangesAsync, потом сравниваю с новым, уже после .SaveChangesAsync, и создаю запись в базу через .SaveChangesAsunc сущности аудита. Так вот, коллега утвержает, что .SaveChangesAsync должен быть один. А я всегда, когда работал с логгированием не через базу, и не через EF, то есть вручную - использовал по 3 запроса в одной транзакции, что по моему разумению вполне соотвествует чтению состояния объкта из базы (если не закеширован), обновлении полей обьекта логгирования и записи измененного обьекта в базу. Зачем нужно именно один раз вызывать .SaveChangesAsync и что в этом такого криминального, если исользовать два - один для обьекта EF, другой для обьекта EF, его логгирующего?
Зачем использовать 2 транзакции, если 2я должна быть неразрывно связана с 1й?
Обсуждают сегодня