I'll admit I am confused why that step was necessary, but I'll save that for another day, unless someone is feeling like enlightening
The solution will prevent the error, but is not the cause of the error. You actually should not have to do this. From what I understand, you are creating a new record. At this point, the database type has no relavance as all of this is intrinsic to the BO. So it would appear that when you are adding a record the fields are not being initialized...and/or you are referencing this field either through a manual binding, event, or some other code before it gets initialized.
By default, a BO has the AllowNullValuesONnewRow set to false, which forces all rows to be initialized with a default value when a new row is created. So the NULL is not coming from there...it is happening in the Get of the strong-typed property which means that something is trying to call a GetValue before it is initialized.
You might check your mappings or place a breakpoint in the Get of the property to see what is pulling the value. You have a "bandaid" on it so to speak and it would probably be a good idea to find the source of the issue.