Been while since I've done .Net, but what does 'CreateExtensionDictioary()' return? If it returns the dictionary, then I would think to add the point to that dictionary, and add that to the database.
Right now it looks like you are creating the dictionary, then trying to get the newly created dictionary from an object that does not have it yet (since it has not been added to the database).
I could be totally wrong though, as I said it's been awhile since I played with .Net.