ID 공급자 2.0에서 Users
테이블로 이동하는 여러 개의 외부 특성이 포함 된 테이블이 있습니다.데이터베이스 최적화 - 엔터티 프레임 워크 외래 키 특성
[ForeignKey("IsApprovedBy")]
public ApplicationUser IsApprovedByUser { get; set; }
public string IsApprovedBy { get; set; }
정규화로 인해이 외래 키를 신경 쓸 필요가 없다는 것을 알고 있지만 이것은 문제가 아닙니다.
내가 가진 문제는 데이터를 가져 와서 프론트 엔드로 반환하면 Entity 프레임 워크가 호출시 데이터베이스를 호출하는 대신 이러한 ApplicationUsers를 채우기 위해 데이터베이스를 3 번 호출한다는 것입니다.
Db.Contractors.Include(x => x.IsApprovedByUser)
같은 내 쿼리를 실행하는 동안 그는 왜 (다른 모든 데이터가 이미로드) 내 값을 반환하지 때 특정 데이터를 얻을 수있는 데이터베이스 전화는 무엇입니까?
미리 감사드립니다.
추적 캡처 :
은 EF에서 지연로드 문제와 유사합니다. DbContext에서 지연로드를 비활성화하고 다시 확인하십시오. – trailmax
이것은 실제로 내 테스트 중 일부가 Indentity 공급자의 'Users'또는 'Roles' 테이블을 사용하여 실패한다는 것만이 유일한 문제인 것처럼 보입니다. 이것은 이상한데, 작동하지 않으면 서 작동합니다. 이걸 잡는거야? – Tikkes
기본적으로 Identity는 기본적으로 하위 개체를 가져 오지 않으므로 'ApplicationUser'에서 걸려있는 모든 탐색 속성에 NullReferenceExceptions가 표시됩니다. 일반적으로 게으른로드가 해제 된 상태에서 더 나을 것입니다. 이렇게하면 EF가 내릴 수있는 미친 짓을 피할 수 있습니다. – trailmax