Your approach can't be used with other value types, which is why it's not done that way. NULL handling is cumbersome if you want to use typed properties
I don't like solutions where a given value is marked as 'the null value' as that's a moving target. Who can't remember the '9-9-99' date which was used a lot as a flag it wasn't in use, ... till it became september 9, 99.
With .NET 2.0, nullable types will solve this problem. (That is, unless MS forgets to make one valuetype not nullable). They still haven't implemented conversions between DBNull.Value and int& for example, but that's only a problem for the inner core code, not for the entities