ef core plus: ArgumentNullException: значение не может быть нулевым. Имя параметра: свойство

entity-framework-core entity-framework-plus

Вопрос

С помощью 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: значение не может быть нулевым. Имя параметра: свойство Npgsql.EntityFrameworkCore.PostgreSQL.Utilities.Check.NotNull (значение T, строковое параметрName) в Check.cs, строка 21

TargetInvocationException: исключение было выдано целью вызова. System.RuntimeMethodHandle.InvokeMethod (цель объекта, аргументы объекта [], сигнатура сигнатуры, конструктор bool, исключение bool wrapException

Когда я просто загружаю данные с помощью ef core, он загружает 1 строку, которую я ожидаю

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

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

(Между прочим, user.Id не равен NULL и доступен, и к нему также имеется доступ как в коде, так и в базе данных.)

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

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

Принятый ответ

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

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

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

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

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

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




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему