ThenInclude 메서드에서 관련 데이터를 지정할 수 없음

특정 조건에서 ThenInclude 메서드에서 지정한 컨텍스트 속성이 Visual Studio 인텔리전스에 표시되지 않을 수 있으므로 확인해 보았습니다.

결론



ThenInclude(colection => corection.×××)와 같이 컬렉션의 관련 데이터를 읽으려고 하면 인텔리센스에 표시되지 않습니다. 인텔리센스의 버그라고 합니다.

대책



인텔리센스에 의존하지 않고 수동으로 지정합니다.

검증



사용할 모델(필요한 부분만 발췌)
   public class User
    {
        public int UserId { get; set; }
        public string UserName { get; set; }

        public List<Books> UserBooks { get; set; }
    }

    public class Books
    {
        public int UserId { get; set; }
        public int CategoryId { get; set; }
        public string Title { get; set; }

        public List<BookCategory> BookCategories { get; set; }
    }

    public class BookCategory
    {
        public int CategoryId { get; set; }
        public int CategoryName { get; set; }
    }

ThenInclude에서 컬렉션 관련 데이터 로드




본래는 여기서 Books 클래스의 관련 데이터의 프로퍼티인 「BookCategories」가 인텔리센스에 나오길 바라지만, 나오지 않는다.
나오지 않지만 직접 속성을 넣으면 오류없이 읽을 수 있습니다.


위 이미지와 같이 속성 이름을 지정한 다음 "userBooks."까지 지우고 속성 이름을 치면 왜 표시됩니다.





왠지 인텔리센스에 나오지만, 한 번 전부 지워서 다시 한번 치면 나오지 않게 된다.

인텔리 센스에 나오지 않기 때문에 ThenInclude 사용할 수 없다고 생각했지만, 실은 사용할 수 있습니다.

참고

좋은 웹페이지 즐겨찾기