엔터티 프레임 워크 코어을 저장소 패턴과 함께 사용하고 있는데 한 가지 문제가 있습니다.EF 코어에서`ThenInclude '를 사용하려고 할 때 예외가 발생했습니다
나는 모습, 여기에 관련이없는 일을 숨기는 클래스 Customer
, Company
및 Email
,이 다음 Customer
사이의 one-to-one 연관이되도록
public class Email
{
public int EmailId { get; protected set; }
public string Address { get; protected set; }
public string Description { get; protected set; }
public Email(string address, string description)
{
if (string.isNullOrEmpty(address))
throw new ArgumentException(nameof(address));
if (string.isNullOrEmpty(description))
throw new ArgumentException(nameof(description));
this.Address = address;
this.Description = description;
}
protected Email() { }
}
public class Company
{
public int CompanyId { get; protected set; }
public IList<Email> Emails { get; set; }
}
public class Customer
{
public int CustomerId { get; protected set; }
public Company Company { get; set; }
}
매핑이 설정되어 Company
이고, Company
과 Email
사이에는 일대 다 관계가 있습니다.
public IEnumerable<Customer> GetAll()
{
return _context.Set<Customer>()
.Include(x => x.Company)
.ThenInclude(x => x.Emails)
as IEnumerable<Customer>;
}
지금 다음 ThenInclude
조각 문제를주고 다음 CustomersRepository
에
source
이 null이라는 하나의 실행 결과가 발생합니다.
나는 모든 것을 검토했지만 잘못된 것은 발견하지 못했습니다. 모든 것이 올바르게 쓰여진 것 같습니다.
요점은 다음과 같습니다 나는 C
의 많은있다 C
A
이 B
중 하나를 가질 수 있도록하고, B
기관 A
, B
을 가지고, 내가 A
를 검색 할 때 나는 관련된 모든 것을 얻을 필요가있다.
내가 뭘 잘못하고 있니? 왜 내가이 예외를 얻고 있습니까?
'포함 할 수 없습니까?' – Will
감사합니다. @Will,이 솔루션을 사용하여 작동합니다! 그건 그렇고 왜'ThenInclude'가 작동하지 않는지 아십니까? 내가 권장하는 방법이지만,이 경우 단순히 작동하지 않는 워드 프로세서를 이해한다면. – user1620696
죄송합니다, 알 수 없습니다. ThenInclue를 사용하지 마십시오. 구현 방법을 모르십시오. Lemme에서 잠깐 살펴보고 대답을 추가하십시오. – Will