ef core plus: ArgumentNullException: значение не может быть нулевым.Имя параметра: свойство - PullRequest
0 голосов
/ 05 февраля 2019

С помощью ef core plus я пытаюсь обновить набор строк в моей модели:

await _context.Set<Critique>()
            .Include(c => c.User)
            .Where(c => c.Closed && c.User.Id == user.Id)
            .UpdateAsync(c => new Critique() { User = deletedUser });

Здесь я получаю следующее исключение:

ArgumentNullException: Valueне может быть нулевым.Имя параметра: свойство Npgsql.EntityFrameworkCore.System.*

var test = await _context.Set<Critique>()
            .Where(c => c.Closed && c.User.Id == user.Id)
            .ToArrayAsync();

Модель базы данных ничего необычного, но она слишком велика, чтобы публиковать здесь. Я широко использую [Обязательно], и существует множество отношений «один ко многим».

(Кстати, user.Id не является нулевым и недоступным, и deleteUser также доступен как в коде, так и в базе данных.)

Как следует интерпретировать эту ошибку? Что я делаю не так?

Спасибоза вашу помощь!

1 Ответ

0 голосов
/ 06 февраля 2019

Наша библиотека может обновлять значение, но не может обновлять значение, используя свойство навигации в данный момент

Это не работает

.UpdateAsync(c => new Critique() { User = deletedUser });

Но это работало бы, если бы у вас было свойство

.UpdateAsync(c => new Critique() { UserID = deletedUserID });

Также нет смысла добавлять .Include(c => c.User), так как вы не получаете эту информацию.

...