The use of FillObject and FillCollection is now discouraged by the CT for performance reasons. I believe Charles Nurse recommended in one of his posts to use your own helper functions to fill the objects in your application, instead of those two methods. By using this approach you are still using the DAL to connect to the DB most often returning a Datareader to your controller and then filling an info object with the returned values.
For example for a Datareader called dr:
Private Function FillMyObjectInfo(ByVal dr As IDataReader, ByVal CheckForOpenDatareader As Boolean, ByVal IncludePermissions As Boolean) As MyObjectInfo
Dim intObject_ID As Integer = Convert.ToInt32(Null.SetNull(dr("EntidadFinanciera_ID"), intObject_ID))
Dim strObjectName As String = Convert.ToString(Null.SetNull(dr("EntidadName"), strObjectName))
Dim oObjectInfo As New ObjectInfo(intObject_ID, strObjectName )
End Function
The Null.SetNull method comes from the mentioned Null Class in the Dotnetnuke.Common.Utilities namespace. By checking for the value instead of using the method with your own, I believe it would be possible to handle nulls in the way you want to.