After being prompted to look into the code by @canto7's comments, and doing a bit more digging, I think I see the problem now. There seems to be some confusion over what entity-level errors means, such as this SO question.
The INDEI implementation that I've used (and a lot of others I suspect) interpret this as "return every validation error for every property". In reality I think entity-level errors means the exact opposite - they are validation errors that have not been recorded against specific properties. For example some complex validation rule that involves multiple properties and/or other classes.
It all comes down to what your requirements are. It may be sufficient to record just the property-specific errors, in which case GetErrors(empty string)
should return null. However if you do need to record "entity-level" validation errors then you will need to implement this functionality (most INDEI articles don't), and return these errors from GetErrors(empty string)
.
Just bear in mind that returning errors in response to this may have undesirable UI effects, as I have found.