I think it would be nice to add some other extension methods to the UriExtensions class that take a DateTime?, a long?, etc... and add them to the Uri only if they're not null.  Then this method just becomse uri.AddQuery(name, value), and you can remove all the ifs.