I have a table Donations which has a CampaignID column that relates to the Campaigns Table. I need to insert a 0 in the CampaignID column instead of Null if the Campaign is
With this information you should understand why you have the problem.
Is the CampaignID generated with an automatic counter? Then it does not work anyway. (You can't set the id in the application.) Unless you store the Campaign with the CampaignID = 0 (see bellow).
You can make the CampaignID a nullable int, then the unsaved value is null by default.
Be aware that you get a Campaign with the CampaignID=0 in you database. This is a "Null Object". You need to store it, for instance after you setup the database.
If you want to avoid the null object, you get in troubles. NHibernate conceptually don't let you access the foreign keys, it manages it for you. You probably can do some tricks ( for instance in an interceptor), but I think it is not worth the troubles. You also have to make sure that there is no foreign key constraint, which is also not nice.