ef 核心加上:ArgumentNullException:值不能为 null。参数名称:属性

ef core plus: ArgumentNullException: Value cannot be null. Parameter name: property

使用 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 cannot be null. Parameter name: property Npgsql.EntityFrameworkCore.PostgreSQL.Utilities.Check.NotNull(T value, string parameterName) in Check.cs, line 21

TargetInvocationException: Exception has been thrown by the target of an invocation. System.RuntimeMethodHandle.InvokeMethod(object target, object[] arguments, Signature sig, bool constructor, bool wrapException

当我使用 ef core 加载数据时,它加载了我期望的第 1 行

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

数据库模型没什么特别的,但是对于 post 来说太大了。我广泛使用 [Required],并且有很多一对多关系。

(顺便说一句,user.Id 不为 null 且不可用,并且 deletedUser 在代码和数据库中也可用。)

应该如何解释这个错误?我做错了什么?

感谢您的帮助!

我们的库可以更新值,但目前无法使用导航更新值属性

这行不通

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

但是如果你有 属性

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

此外,添加 .Include(c => c.User) 也没有意义,因为您不会检索此信息。