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, line 21의 Npgsql.EntityFrameworkCore.PostgreSQL.Utilities.Check.NotNull (T 값, 문자열 parameterName)
TargetInvocationException : 호출 타겟에 의해 예외가 Throw되었습니다. System.RuntimeMethodHandle.InvokeMethod (객체 대상, 객체 [] 인수, 서명 시그니처, bool 생성자, bool wrapException
ef core로 데이터를로드 할 때, 기대하는 1 행을로드합니다.
var test = await _context.Set<Critique>()
.Where(c => c.Closed && c.User.Id == user.Id)
.ToArrayAsync();
데이터베이스 모델은 아무것도 아니지만 여기에 게시하기에는 너무 큽니다. 나는 [필수]를 광범위하게 사용하고 있으며, 일대 다 관계가 풍부합니다.
(Btw, user.Id는 null이 아니며 사용 가능하며 deletedUser는 코드와 데이터베이스에서 모두 사용할 수 있습니다.)
이 오류를 어떻게 해석해야합니까? 내가 뭘 잘못하고 있죠?
당신의 도움을 주셔서 감사합니다!
Google 도서관은 가치를 업데이트 할 수 있지만 현재 탐색 속성을 사용하여 값을 업데이트 할 수 없습니다.
이것은 작동하지 않는다.
.UpdateAsync(c => new Critique() { User = deletedUser });
하지만 재산이 있다면이게 효과가 있었을거야.
.UpdateAsync(c => new Critique() { UserID = deletedUserID });
또한,이 정보를 검색하지 않기 때문에 .Include(c => c.User)
를 추가 할 필요가 없습니다.