The () seems silly. is there a better way?
For example:
ExternalId.IfNotNullDo(() => ExternalId = ExternalId.Trim());
For a lambda, no: you need () =>
Is it for a delegate or an expression? For delegates, another option is delegate {...}. This may or may not be desirable, depending on the scenario. It is more keys, certainly...
In some cases (not this one) you can use a target method directly - i.e.
ExternalId.IfNotNullDo(SomeMethod);