ef core plus: ArgumentNullException: la valeur ne peut pas être null. Nom du paramètre: propriété

entity-framework-core entity-framework-plus

Question

Avec ef core plus, j'essaie de mettre à jour un ensemble de lignes sur mon modèle:

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

Ici, j'obtiens l'exception suivante:

ArgumentNullException: la valeur ne peut pas être null. Nom du paramètre: propriété Npgsql.EntityFrameworkCore.PostgreSQL.Utilities.Check.NotNull (valeur T, chaîne nomName) dans Check.cs, ligne 21

TargetInvocationException: une exception a été levée par la cible d'un appel. System.RuntimeMethodHandle.InvokeMethod (cible d'objet, arguments d'objet [] arguments, Signature sig, constructeur bool, exception bool wrapException

Quand je charge juste les données avec ef core, il charge la 1 rangée que j’attends

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

Le modèle de base de données n'a rien d'extraordinaire, mais il est trop volumineux pour être publié ici. J'utilise intensivement [Obligatoire] et il existe de nombreuses relations un-à-plusieurs.

(Btw, user.Id n'est pas nul et disponible, et deleteUser est également disponible à la fois dans le code et dans la base de données.)

Comment interpréter cette erreur? Qu'est-ce que je fais mal?

Merci de votre aide!

Réponse acceptée

Notre bibliothèque peut mettre à jour la valeur, mais ne peut pas la mettre à jour à l'aide de la propriété de navigation pour le moment.

Ça ne marche pas

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

Mais cela aurait fonctionné si vous aviez la propriété

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

En outre, il est inutile d'ajouter .Include(c => c.User) car vous ne récupérez pas ces informations.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi