ef core plus: ArgumentNullException: il valore non può essere nullo. Nome parametro: proprietà

entity-framework-core entity-framework-plus

Domanda

Con ef core plus, sto cercando di aggiornare una serie di righe sul mio modello:

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

Qui ottengo la seguente eccezione:

ArgumentNullException: il valore non può essere nullo. Nome parametro: proprietà Npgsql.EntityFrameworkCore.PostgreSQL.Utilities.Check.NotNull (valore T, stringa parameterName) in Check.cs, riga 21

TargetInvocationException: l'eccezione di una chiamata è stata lanciata dalla destinazione. System.RuntimeMethodHandle.InvokeMethod (oggetto target, oggetto [] argomenti, firma sig, bool constructor, bool wrapException

Quando carico i dati con ef core, carica la 1 riga che mi aspetto

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

Il modello di database non è di fantasia, ma è troppo grande per essere pubblicato qui. Sto usando [Richiesto] estesamente, e ci sono un sacco di relazioni uno a molti.

(Btw, user.Id non è nullo e disponibile e deleteUser è disponibile anche nel codice e nel database.)

Come dovrebbe essere interpretato questo errore? Che cosa sto facendo di sbagliato?

Grazie per l'aiuto!

Risposta accettata

La nostra libreria può aggiornare il valore ma non può aggiornare il valore utilizzando la proprietà di navigazione in questo momento

Questo non funziona

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

Ma questo avrebbe funzionato se tu avessi la proprietà

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

Inoltre, non è necessario aggiungere .Include(c => c.User) poiché non si recuperano queste informazioni.



Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow