Кажется, что в тернарном операторе есть некоторая путаница типов.Я знаю, что это было рассмотрено в других потоках SO, но это всегда было с нулями.Кроме того, для моего случая я просто ищу лучший способ.
Я бы хотел использовать
proc.Parameters[PARAM_ID].Value =
string.IsNullOrEmpty(dest.Id) ? DBNull.Value : dest.Id;
, но вместо этого я застрял с этим:
if (string.IsNullOrEmpty(dest.Id))
{
proc.Parameters[PARAM_ID].Value = DBNull.Value;
}
else
{
proc.Parameters[PARAM_ID].Value = dest.Id;
}
Тернарный оператор завершается неудачно, потому что невозможно преобразование между DBNull и строкой, и как бы глупо это не казалось, учитывая, что Value is object, компилятор возвращает его мне, и я вынужден позаботитьсяОтвет на обнуляемую версию этого вопроса - просто привести ноль к строке и покончить с этим;DBNull не может быть приведен к строке, так что не повезло.
Есть ли более краткий способ сделать это (кстати, без использования nullables?)
Спасибо!