You know that inheriting meaning full keys - especially over three tabels and not only two - is so 1980's?
You have not provided any info on how those Invoice numbers are built. Does it need to happen as part of the transaction (unnecessary complication, see above)?
One place to implement this, would be in Validate Data. Or an SaveChanges override in the Business Entity.