I think the DBNull object returns {} or something like that and would be a placeholder for the user to manually edit the script. If you went that route, the warning message should be updated to say ...
I have hit two issues with strings in SqlBulkCopy.WriteToServer(DataTable) in .Net Core and found that the code functions properly on .Net. This is running against Azure SQL. Here is a cut-down ...