EIdNotSetException with Bigint(identity) starting 0!

Correct.

I'm afraid I don't understand what you mean here?

If zero is a valid id value for your database, then you should make to tell Aurelius so, using IdUnsavedValue, as discusses in a few topics: