Hello,
I think that EntityMethod is not bad solution, you can look here,
Look as well for options,
However, if you like to have something low level, or make some operations on fields, look at this,
If you look at function FieldBalss::fieldLambda you can find implementation useful. Note, that implementation in FieldBalss::fieldLambda should be pretty fast.
However, Is better use EntityMethod, or FieldBalss::fieldLambda rather than low level. We can also identify if we missing some functionality.
Kind regards,
Lukasz