Могу ли я настроить строго типизированный набор данных для использования значений Nullable? - PullRequest
2 голосов
/ 03 мая 2010

Если у меня есть строго типизированная таблица данных со столбцом для значений типа Int32, и этот столбец допускает нулевые значения, тогда я получу исключение, если сделаю это для строки, в которой значение равно нулю:

int value = row.CustomValue;

Вместо этого мне нужно сделать следующее:

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

В идеале я бы хотел сделать это:

int? value = row.CustomValue;

Конечно, я всегда мог написать свой собственный метод, что-то вроде GetCustomValueOrNull; но было бы предпочтительнее, если бы свойство, автоматически сгенерированное для самого столбца, просто возвращало значение NULL. Это возможно?

1 Ответ

1 голос
/ 03 мая 2010

К сожалению, это не поддерживается.

Однако вы можете создать собственное свойство оболочки, например:

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

Где CustomValueSql - собственно имя столбца.

...