클로즈 로 쿼리 최적화
도전 : 조항을 사용하여 관련 엔티티를 동시에 필터링하는 동시에 EF의 Include
메소드를 사용하여 관련 엔티티를 효율적으로 가져 오는 것은 까다로울 수 있습니다. 순진한 접근 방식은 종종 여러 데이터베이스 트립과 잠재적 매핑 오류로 이어집니다.
솔루션 전략 : Where
1. EF6 해결 방법 (Projection and Fixup) :
Entity Framework 6 및 이전 버전의 경우, 해결 방법은 게으른로드를 비활성화하고 필요한 데이터 만 선택하기 위해 프로젝션을 사용하는 것입니다. 그런 다음 관계 고정 장치는 협회를 처리합니다.
를 가져옵니다. 결정적으로, 관계 수정은 와 필터링 된 .
게으른 하중 : 는 예상치 못한 데이터베이스 호출을 피하기 위해 예측 및 관계 고정을 사용할 때 항상 게으른 하중을 비활성화합니다.
다수 : 타사 혜택 : Include
2. 타사 라이브러리 활용 : Where
<code class="language-csharp">Context.Configuration.LazyLoadingEnabled = false;
var buses = Context.Busses.Where(b => b.IsDriving)
.Select(b => new { b, Passengers = b.Passengers.Where(p => p.Awake) })
.AsEnumerable()
.Select(x => x.b)
.ToList();</code>
글로벌 쿼리 필터 기능의 잠재적 개선을 위해 EF 핵심 업데이트를 계속 주시하십시오.
위 내용은 관련 엔티티의`hole 'where'와 함께 EF` 포함 '를 효율적으로 사용하려면 어떻게해야합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!