테이블 2 개 : POHeader 및 PODetail이 있습니다. 연결된 PODetail.ItemId = intItemId가있는 모든 POHeaders를 반환하고 싶습니다. LINQ에서 어떻게하면됩니까?자식 테이블 값을 쿼리하는 방법
이것은 내가 시도한 것입니다.
public IQueryable<POHeader> SearchForWithDetails(int intFacilityId)
{
return DbSet.Include("PODetails").Where(x => x.FacilityId == intFacilityId);
}
그리고 그 결과가 전달되는 :
public IQueryable<POHeader> SearchForPODetailsByItemId(IQueryable<POHeader> poHeaders, int intItemId)
{
//This returns a type of PODetail not POHeader
var q = poHeaders.SelectMany(c => c.PODetails).Where(c => c.ItemId == intItemId);
//In this case, I can't figure out the syntax :(
var p = from poHeader in poHeaders
let filteredPOs = from poDetail in poHeader.PODetails
where poDetail.ItemId == intItemId
select ????
return p;
}
올바른 방법은 무엇
먼저 나는 PODetails을 포함하도록 포함 매개 변수를 사용하여 내 저장소에서 방법을 이것을하기 위해?
- 단지 된 IQueryable
- 창 조인 테이블 리턴 결과 :
또한, I이 2 개 결과를 예측할 필요가있다.
오류가 발생합니다. bool을 POHeader로 변환 할 수 없습니다 ?? –
죄송합니다, 지금 고정 –
아, 그게 지금 작동합니다. 따라서 두 가지 방식 모두 작동합니다. 하지만 아마도이 버전은 클리너이기 때문에 아마 사용하게 될 것입니다! 감사합니다 에스테반! –