당신이 선택한 부모의 필터링 된 하위 집합을 포함 할 수 없습니다. 전체 모음 또는 하위 모음 만 포함 할 수 있습니다. 그러나 해결 방법으로 당신과 같이, 중간 익명 형식을 사용할 수
var q = (from uo in _unitOccupierContext.GetUnitOccupierQuery()
select new {
Parent = uo,
Childs = uo.UnitOccupierDetails
.Where(uod => uod.MyDetailsProp == MyDetailsValue)
}).FirstOrDefault();
if (q != null)
{
UnitOccupier selectedUnitOccupier = q.Parent;
selectedUnitOccupier.UnitOccupierDetails = q.Childs.ToList();
// selectedUnitOccupier now only contains the filtered childs
}
편집
당신이 차일에 대한 조회 할과 (코멘트에서 질문 관련) 부모를 포함 할 경우 수 사용
var q = _unitOccupierContext.GetUnitOccupierQuery()
.SelectMany(uo => uo.UnitOccupierDetails
.Where(uod => uod.MyDetailsProp == MyDetailsValue))
.Include(uod => uod.UnitOccupier)
.FirstOrDefault(); // or .ToList() if you expect more than one record
// q is now null or a single UnitOccupierDetails entity
// with a reference to its parent
을 나는 당신의 UnitOccupierDetails
클래스는 부모 UnitOccupier
에 대한 탐색 속성을 가지고 여기에 가정입니다.
하위를 쿼리하고 부모를 포함 할 수 있습니까? – Greg
@greg : 편집 내 대답을 참조하십시오. – Slauma
업데이트 주셔서 감사합니다 - 나는 OwnerOccupierDetails 엔터티를 쿼리하고 필요한 엔터티로 필터링 해 보았습니다. 엔티티를 저장할 때까지 제대로 작동합니다. 엔티티가 부모를 필요로하고 데이터베이스에서 참조 오류가 발생하기 때문입니다. 위의 코드로 다시 시도하겠습니다 ... – Greg