ef core plus: ArgumentNullException: el valor no puede ser nulo. Nombre del parámetro: propiedad

entity-framework-core entity-framework-plus

Pregunta

Con ef core plus, estoy intentando actualizar un conjunto de filas en mi modelo:

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

Aquí obtengo la siguiente excepción:

ArgumentNullException: el valor no puede ser nulo. Nombre de parámetro: propiedad Npgsql.EntityFrameworkCore.PostgreSQL.Utilities.Check.NotNull (valor de T, nombre de cadena de parámetro) en Check.cs, línea 21

TargetInvocationException: el destino de una invocación ha generado una excepción. System.RuntimeMethodHandle.InvokeMethod (objetivo de objeto, argumentos de objeto [], firma de firma, constructor de Bool, excepción de wrap de bool

Cuando acabo de cargar los datos con ef core, carga la fila 1 que espero

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

El modelo de base de datos no es lujoso, pero es demasiado grande para publicarlo aquí. Estoy usando [Requerido] ampliamente, y hay muchas relaciones de Uno a Muchos.

(Por cierto, user.Id no es nulo y está disponible, y deletedUser también está disponible tanto en el código como en la base de datos).

¿Cómo debe interpretarse este error? ¿Qué estoy haciendo mal?

¡Gracias por tu ayuda!

Respuesta aceptada

Nuestra biblioteca puede actualizar el valor pero no puede actualizar el valor utilizando la propiedad de navegación en este momento

Esto no funciona

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

Pero esto hubiera funcionado si tuviera la propiedad.

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

Además, no tiene sentido agregar .Include(c => c.User) ya que no recupera esta información.



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow