<code class="language-csharp">public class Mutant { public long Id { get; set; } public long OriginalCodeId { get; set; } public virtual OriginalCode OriginalCode { get; set; } } public class OriginalCode { public long Id { get; set; } public virtual List<Mutant> Mutants { get; set; } }</code>그러나"프리로드 "부분에는 다음이 포함되어 있습니다.
팁 OnModelCreating
엔티티 프레임 워크 코어는 컨텍스트 인스턴스의 다른 엔티티에로드 된 내비게이션 속성을 자동으로 복구합니다. 따라서 내비게이션 속성을 포함하는 데이터를 명시하지 않더라도 일부 또는 모든 관련 엔티티가 이전에로드 된 경우 속성이 여전히 채워질 수 있습니다.
<code class="language-csharp">modelBuilder.Entity<Mutant>() .HasOne(m => m.OriginalCode) .WithMany(oc => oc.Mutants) .HasForeignKey(m => m.OriginalCodeId) .OnDelete(DeleteBehavior.Restrict);</code>솔루션
OriginalCode
첫 번째 문제 해결 (내비게이션 속성이 비어 있음) : OriginalCode
OriginalCode
두 번째 문제를 해결합니다 (관련 엔터티가 내비게이션 속성을 채우게 한 관련 엔티티가 사전로드 됨) :
Core v2.1 지원 지연 로딩을 지원하지만 기본적으로 활성화되지는 않습니다. 그것을 가능하게하려면 :
> nuget 백을 설치하십시오.사용
지연 하중 활성화.
위 내용은 EF Core 탐색 속성이 명시적으로 로드될 때까지 null인 이유는 무엇이며 이를 일관되게 채울 수 있는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!