Linq-To-SQL을 사용하여 비즈니스 계층을 채우고 있습니다. 이 코드를 실행하면단일 SQL 명령 만 실행하도록이 LINQ 쿼리를 최적화하려면 어떻게해야합니까?
fund.FundEntities = fundGroup.tFunds
.Select(fe =>
{
var fundEntity = new FundEntity()
{
BankAccount = null,
CloseDate = fe.closeDate ?? new DateTime(),
Commitment = fe.commitment ?? 0,
CommitmentEndDate = fe.closeDate ?? new DateTime(),
Fund = fund
};
fundEntity.CapitalCalls = fe.tCapitalCalls
.Select(cc =>
{
return new CapitalCall()
{
Amount = cc.agrAmount ?? 0,
FundEntity = fundEntity
};
}
);
return fundEntity;
});
, 그것은 런타임에 개별 CapitalCalls에 대한 쿼리를 실행합니다 : 여기에 내가 일하고 쿼리의 조각이다. 어쨌든 동일한 비즈니스 객체 구조 (IE - 비즈니스 오브젝트 내에서 Fund -> FundEntity -> CapitalCall과의 관계)를 유지하기 위해 이것을 다시 설계 할 수 있습니까?하지만 한 번에 전체 테이블을로드합니까? 이상적으로는 완전히 조인 된 기금이 될 많은 조인이있는 단일 SQL 쿼리가있을 것입니다.
ToList()를 호출하는 이유는 무엇입니까? –
FundEntity의 CapitalCall 속성이 List 유형이기 때문에 –
Shawn
Hrmm 나는 그들을 IEnumberable로 만들 수 있다고 생각하지만 런타임에 1을 1 회씩 쿼리합니다 ... – Shawn