I'm really surprised that I'm the first to mention this one:
ADO.NET typed data sets don't expose nullable columns as properties of nullable types. You should be able to write this:
int? i = myRec.Field;
myRec.Field = null;
Instead, you have to write this, which is just stupid:
int? i = (int?)myRec.IsFieldNull() ? (int?)null : myRec.Field;
myRec.SetFieldNull();
This was annoying in .NET 2.0, and it's even more annoying now that you have to use jiggery-pokery like the above in your nice neat LINQ queries.
It's also annoying that the generated AddRow
method is similarly insensible to the notion of nullable types. All the more so since the generated TableAdapter
methods aren't.
There's not a lot in .NET that makes me feel like the dev team said "Okay, boys, we're close enough - ship it!" But this sure does.