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 Add<TableName>Row
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.