0
나는 간단한 카테고리 관리 시스템을 가지고 있습니다.Entity Framework - 외래 키 관계 계산 횟수
class Category {
public EntityCollection<Member> Members { get; }
}
class Member {
public Category ParentCategory { get; }
}
내가 그것을 어떤 구성원이있는 경우 카테고리의 삭제를 방지하는 비즈니스 규칙이 있습니다 내 자동으로 생성 된 EF 개체에서
나는 관련성의 두 종류가 있습니다.
if(category.Members.Count() > 0) // then disallow deletion
그러나이 호출은 항상 0을 반환합니다.
if(!category.Members.IsLoaded) category.Members.Load();
if(category.Members.Count() > 0) // then disallow deletion. This works.
나는 EF는 SQL SELECT COUNT(*) FROM Members WHERE Members.CategoryId = @parentCategoryId
대신에 초기 .Count()
전화를 변환 똑똑 될 것이라고 기대했다 :
내가 DB 히트 incurrs하는, 실제로 첫번째 컬렉션을로드 할 필요가 나타납니다 실제로 구성원 개체를로드하고 메모리를 통해 반복합니다.
EF에서이 작업을 수행 할 수있는 방법이 있습니까? 아니면이를 수행하기 위해 sproc 또는 사용자 지정 SQL을 정의해야합니까?