나는 기본적으로 여러 부서가있는 기관 인 하위 개체 목록이있는 개체를 가지고 있습니다. 부서는 부서의 부울 속성을 기반으로 비활성화되거나 활성화 될 수 있습니다. 장애가있는 부서가 하나 이상있을 때 기관의 자산을 거짓으로보고 싶습니다. 내 부분 기관 클래스에 다음 코드를 가지고 :Entity Framework 성능 - 어떻게 작동합니까?
public bool AllSet
{
get
{
return !(Departments.Where(i => i.Active == false && i.IsDeleted == false).Count() > 0);
}
}
이 작동하지만, 내가 가진 때 분명히 나는, 기관의 목록 크롤링 및 메모리 사용량 급증에 속도가 느려 보여줍니다 내 페이지의 성능을 사용할 수 여기에 근본적으로 잘못된 것을하는 사람은 누구나이 일을 할 수있는 다른 방법이 있습니까?
WORKING 솔루션은
var institutions = from x in ent.Institutions let hasDepartments =
!x.Departments.Any(d => d.Active == false && d.IsDeleted == false) select new {
FullTitle = x.Title + " - " + x.Address.Line1 + ", " + x.Address.City + ", " + x.Address.State, Department = x, AllSet = hasDepartments, Guid = x.Guid
};
instList.DataSource = institutions;
또는 EAGER 부서를로드 할 수 있지만 일부 부울뿐만 아니라 모든 Deparments를로드하는 것을 의미합니다. – Aron
나는 쿼리로이 모든 작업을하는 것을 좋아합니다. 내일 시도하고 다시 게시 할 것입니다. – box86rowh
귀하의 도움에 감사 드리며 원래의 질문에 대한 귀하의 대답의 다양성, 나는이 방법을 사용하여 앞으로 더 큰 목록을 채울 것입니다. – box86rowh