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

时间:2019-02-05 14:41:12

标签: 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:值不能为null。   参数名称:属性   Check.cs第21行中的Npgsql.EntityFrameworkCore.PostgreSQL.Utilities.Check.NotNull(T值,字符串parameterName)

     

TargetInvocationException:调用的目标引发了异常。   System.RuntimeMethodHandle.InvokeMethod(对象目标,对象[]参数,签名sig,布尔构造函数,布尔wrapException

当我仅使用ef内核加载数据时,它将加载我期望的1行

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

数据库模型没什么花哨的,但太大了,无法在此处发布。我广泛使用[必填],并且有很多一对多关系。

(顺便说一句,user.Id不是null且不可用,而且deleteUser在代码和数据库中也都可用。)

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

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

这不起作用

5.1

但是,如果您拥有该物业,这将奏效

var driver = new AndroidDriver<AndroidElement>(new URL("http://0.0.0.0:4723/wd/hub"), capabilities);

此外,由于您没有检索到此信息,因此没有必要添加.UpdateAsync(c => new Critique() { User = deletedUser });