Можно ли настроить строго типизированный набор данных для использования значений, допускающих значение NULL?

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

int value = row.CustomValue;

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

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

В идеале я хотел бы иметь возможность сделать это:

int? value = row.CustomValue;

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


person Dan Tao    schedule 03.05.2010    source источник


Ответы (1)


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

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

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

Где CustomValueSql — это фактическое имя столбца.

person SLaks    schedule 03.05.2010