First of all (as I already stated a couple of times), I understand that MsSQL sucks and there's not much one can do about it.
But ... why is LGP converting nullable types into not nullable? I have a view that has a nullable boolean field. The value of this field in a particular row is NULL, but when I try to access the value through the LGP entity, it is FALSE. This totally falsifies my data! LGP does the same for numeric values (turns them to 0), but not with strings where the value stays NULL.
If no assumptions can be made about whether a field is nullable or not, it should be nullable and not assigned a value that isn't there?
Furthermore, I have tried to read through the thread that you suggested, and I don't think I can follow. Can you please elaborate more on the idea of changing the source code in SqlServerSchemaRetriever.cs, line 1263? How am I supposed to do that?