The adapter, and DBO is not the VO
Persistence is the outer layer, and its whole job is boring on purpose. An adapter implements a port and does IO: it maps the domain object to a database row, and saves. It does not validate, calculate, or call domain factories. Boring is the goal; interesting persistence code usually means domain logic leaked outward.
The row it saves is a DBO (a database object), and this is a distinction Nest can blur: the DBO is NOT the value object. FlightNoteVo is the domain value object (behaviour, invariants, private ctor). FlightNote is a persistence record: EF attributes, an Id, audit columns, public setters. A mapper, FlightNote.From(vo), copies VO to DBO.
Try it yourself
Trace one note through the layers
Walk a single note from request to row and name the boundary each hop crosses. Use the real files.
Tick every step to confirm you did it.
VO versus DBO
Two representations, know the difference.
What's the difference between FlightNoteVo and the FlightNote DBO, and what must the DBO's From mapper NOT do?
What the adapter may do
Which of these is legitimate work for a persistence adapter?