2012-12-04 2 views
0

나는 예를 들어, 모든 엔티티에 의해 구현 공통 인터페이스가있는 경우 : 그것은 모든 가능한 개체를 필터링 반환 된의 일환으로공통 인터페이스를 기반으로 쿼리에서 EF 객체 그래프를 필터링

public interface IEntity { 
    int Id { get; set; } 
    DateTime ValidFrom { get; set; } 
    DateTime? ValidTo { get; set; } 
} 

인가를 ValidTo가 null의 경우는 조회 - 유효한 유효 오브젝트 만 리턴합니다.

필자는 Julia Lerman과 Rowan Miller가 PEF : DbContext에서 비슷한 것을 사용하여 연결이 끊어진 엔터티에 상태를 설정하지만 상태 관리자를 통해 수행한다는 점에서이 아이디어를 얻었습니다.이 상태 관리자는 상태 관리자를 통해 모든 작업을 반복 할 수 있습니다. 특정 인터페이스 - 비슷한 일을하고 싶지만 하위 엔티티가 포함 된 쿼리를 수행하고 싶습니다.

SQL Server 2012, EF5 및 .Net 4.5를 사용하고 있습니다.

답변

0

참조하는 예는 인터페이스를 제네릭 형식 매개 변수로 허용하는 ChangeTracker.Entries<T>() 메서드에 의존합니다. 물론이 모든 일은 메모리에서 발생하며 SQL 관련 번역은 없습니다.

linq를 SQL로 변환 할 때, 기본적으로 DbSet<T>은 구체적인 클래스를 기반으로해야하기 때문에 엔티티 프레임 워크는 (아직) 인터페이스를 지원하지 않습니다.

유일한 기회는 인터페이스 대신 기본 유형을 생성하고 그로부터 개체를 파생시키는 것입니다.

관련 문제