약간의 도움이 필요합니다 ... ICollection
중첩 된 엔터티가 있습니다. 작업 그룹 (AdjudicationHead
)과 AdjYearFFI
을 그룹화해야 할 때 그룹에 대한 속성으로 AdjYearFFI
을 설정할 수 없습니다.LINQ에서 ICollection의 중첩 된 속성별로 그룹화하는 방법?
엔티티 :
public class AdjudicationHead : BaseEntity
{
public virtual int Work { get; set; }
public virtual int AdjYear { get; set; }
public virtual string AdjType { get; set; }
public virtual long AdjNumber { get; set; }
//Navigation
public virtual ICollection<AdjudicationDetail> AdjudicationDetails { get; set; }
}
public class AdjudicationDetail : BaseEntity
{
public virtual int AdjYearFFI { get; set; }
//FK
public virtual int AdjYear { get; set; }
public virtual string AdjType { get; set; }
public virtual long AdjNumber { get; set; }
//Navigation
public virtual AdjudicationHead AdjudicationHead { get; set; }
}
이 내가 뭘하려 :
public object GetDataCurvaInversionActual()
{
var query = UoW.GetRepository<AdjudicationHead>()
.GroupBy(q => new { q.Work, q.AdjudicationDetails.AdjYearFFI });
var entities = query.ToList();
var result = Mapper.Map<IList<AdjudicationHead>, IList<Dtos.AdjudicationHead>>(entities);
return result;
}
오류 :
'System.Collections.Generic.ICollection does not contain a definition for AdjYearFFI'
'AdjudicationDetails'는'AdjudicationDetail' 타입의 아이템 컬렉션을위한 속성입니다. 따라서이 컬렉션에 정의 된 'AdjYearFFI'속성이 없습니다. – Christos
linq 쿼리에 AdjudicationDetails 컬렉션을 포함 시켰습니까? 귀하의 케이스에있는 ICollection 즉 AdjudicationDetails는 linq에 의해 지연로드됩니다. 이 컨텍스트와 같은 것을 query에 포함시켜야합니다 .AdjudicationHead.Includ (a => a.AdjudicationDetails) .ToList() –
부모 클래스의 속성과 키의 속성으로 구성된 복합 키를 그룹화하려고합니다. 일대 다 관계를 가진 자식 컬렉션. 레벨을 선택해야합니다 - 부모가 자식에 대해 First 또는 Max와 같은 집계를 사용해야하는 경우 및 자식 수준에서 그룹화하려는 경우 각 자식에서 반복하기 위해 부모를 병합해야 할 가능성이 높습니다 에 의해 그룹 전에. – StuartLC