Вызов L2S вызывает исключение о нулевом присваивании int при попытке получить сущность - PullRequest
2 голосов
/ 07 января 2011

У меня есть следующий код

    public JsonResult GetRequestDetails(int id)
    {
        TestRequest req = _context.TestRequests.Where(x => x.id == id).Single();

Это еще не все функции, но в первой строке я получаю следующее исключение:

The null value cannot be assigned to a member with type System.Int32 which is a non-nullable value type.

Теперь в отладчике я вижу, что id является действительным целым числом, оно равно 5 атм для звонка, который я делаю. Затем я перешел к SQL и подтвердил, что существует запись со значением идентификатора 5. Я попытался изменить Single() на First() по нечетной вероятности, что сообщение об исключении было просто неверным и существовало более одной записи, но это же исключение происходит.

Я совершенно сбит с толку, почему этот вызов linq-to-sql не работает.

1 Ответ

1 голос
/ 07 января 2011

Если бы проблема заключалась в том, чтобы «не получить строку», ошибка была бы другой.

Проблема здесь заключается в материализаторе - то есть превращении извлеченной строки данных из IDataReader в объект. Я сильно подозреваю, что один из столбцов int в строке - null, но в DBML помечен как ненулевой.

Найдите, какой это столбец, или сделайте его обнуляемым в DBML или удалите ноль из базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...