Se il mio MSSQL database contiene un tipo di dati che è NULL (cioè è consentito null) quindi ORM , ad esempio EntityFramework nel mio caso, crea oggetti .NET che sono annullabili.
Questo è ottimo, e il modo in cui utilizzo nullables è il seguente:
C #
int? someInt = 5;
int newInt = someInt.Value; // woot
VB.NET
Dim someInt As Integer?
Dim newInt As Integer = someInt.Value ' hooray
Tuttavia, di recente ho dovuto apportare una modifica al database per rendere un campo Id non più NULL (nullable). Ciò significa che .Value
è ora rotto. Questa è una seccatura se la proprietà Id viene usata molto.
Una soluzione che ho pensato è utilizzare solo Convert.ToInt32
sui campi Id, quindi non importa se un int è nullable o meno.
C #
int newInt = Convert.ToInt32(someInt); // always compiles
VB.NET
Dim newInt As Integer = Convert.ToInt32(someInt) ' always compiles
È un approccio sbagliato e ci sono alternative?