Как получить длину, возможно, нулевого поля базы данных - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь получить длину (в символах) самого длинного конкретного поля в моей базе данных, даже в случае отсутствия значений поля.Иногда в нашей базе данных нет значений ни для одного из .UnitID, что выдает ошибку при попытке использовать .Max ().Вот мой текущий запрос:

 var unitIDWidth = data.DefaultIfEmpty().Max(x => x == null ? 0 : x.UnitID.Length);

Я думал, что этот код будет работать, но он по-прежнему выдает это исключение:

'Сбой приведения к значению типа' System.Int32 ', посколькуматериализованное значение равно нулю.Либо универсальный параметр типа результата, либо запрос должен использовать обнуляемый тип. '

Я также пробовал это:

var unitIDWidth = data.Where(x=>x.UnitID != null).Select(x=>x.UnitID.Length).Max();

Но также выдается исключение.

Мне нужно, чтобы этот запрос возвращал 0, если все значения равны нулю, или максимальное количество символов, если есть значения в этом конкретном поле.

Спасибо за любую помощь!

1 Ответ

1 голос
/ 08 марта 2019

В этом утверждении вы проверяете, является ли вся запись нулевой:

.Max(x => x == null ? 0 : x.UnitID.Length);

, в то время как вы должны проверять, является ли столбец UnitID пустым или нет;так попробуйте это:

.Max(x => x.UnitID == null ? 0 : x.UnitID.Length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...