2017-10-12 2 views
0

와 childern 처리 난은 TPH를 사용하여, 오직 DBSet<Parent>DBContext에 노출하고하는 Child이있는 Parent 클래스가 있습니다. 이제 Where(x = x.PropertyInChild)DBSet<Parent>에 사용하고 싶습니다.이 과정에서 xChild이고, 캐스팅이 x 인 경우 다음 오류가 나타납니다.엔티티 프레임 워크 : DBSet <Parent>

LINQ to Entities는 캐스팅 EDM 프리미티브 또는 열거 형 유형 만 지원합니다.

+0

부모와 자녀 수업을 게시 할 수 있습니까? – akerra

답변

0

OnModelCreating 메서드에 파생 엔터티를 암시 적으로 포함해야합니다.

public class SampleContext : DbContext 
{ 
    public DbSet<Parent> Parents { get; set; } 

    protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<Child>(); 
    } 
} 

OfType < TEntity> 방법을 사용할 필요가 자식 개체를 쿼리합니다.

var parents = context.Parents.OfType<Child>().ToList(); 
+0

더 역동적으로 만들 수있는 방법이 있습니까? 컨텍스트를 만드는 방법. 부모는 자동으로 유형을 감지하고 결과적으로 동작하나요? – Sisyphus

+0

@sisyphus 당신은 동적 인 무엇을 의미합니까 ?? –

+0

나는 캐스팅 된 x를 전달해야한다는 것을 의미했다. EF는 동적으로 타입을 탐지 할 것이므로 OfType 메소드를 사용할 필요가 없다. – Sisyphus

관련 문제