2010-05-03 5 views
2

Si j'ai une table de données fortement typé avec une colonne pour les valeurs de type Int32, et cette colonne autorise les valeurs NULL, alors je vais faire une exception si je le fais pour une ligne où la valeur est nulle:Puis-je configurer un ensemble de données fortement typé pour utiliser des valeurs NULL?

int value = row.CustomValue; 

au lieu de cela que je dois faire ceci:

if (!row.IsCustomValueNull()) { 
    int value = row.CustomValue; 
    // do something with this value 
} 

Idéalement je voudrais être en mesure de le faire:

int? value = row.CustomValue; 

Bien sûr, je pourrais al façons d'écrire ma propre méthode, quelque chose comme GetCustomValueOrNull; mais il serait préférable que la propriété générée automatiquement pour la colonne elle-même renvoie simplement une valeur NULL. Est-ce possible?

Répondre

1

Malheureusement, ceci n'est pas supporté.

Cependant, vous pouvez faire votre propre propriété d'emballage, comme ceci:

public int? CustomValue { 
     get { return IsCustomValueqlNull() ? new int?() : CustomValueSql; } 
     set { 
      if (value == null) 
       SetCustomValueSqlNull(); 
      else 
       CustomValueSql = value.Value; 
     } 
    } 

CustomValueSql est le nom en fait la colonne.

Questions connexes