2011-12-08 2 views
0

일부 ORM에서 일대 다 관계가있는 경우 테이블을 나타내는 클래스는 일반적으로 'User'와 같은 열 이름을 가진 단일 객체를 가지며 속성에 일치하는 표 행서브 소닉 액티브 레코드 하위 FK 객체를 사용한 필터링

대신 Subsonic은 속성 s를 추가하기 위해 ColumnName 속성을 추가하기로 결정했습니다. 단일 사용자 객체 대신 IQueryable을 반환합니다.

일부 사용자 속성을 기반으로 결과를 필터링하는 방법에 대해 알려주십시오.

내가 이런 일을하려고했다 :

FileRecord thumbnailImageRecord = newsArticleVersion.NewsArticleVersionFileMaps 
      .SingleOrDefault(f => f.FileRecords.Single().FilePurpose == 3) 
      .FileRecords.Single(); 

는 ORM에서이 일을 더 나은 방법이 있나요 또는 그냥 사용자 정의 Linq에를 사용해야합니까?

답변

1

이것은 SubSonic에서 단점이있는 것으로 보이며 더 나은 솔루션을 제공하는 데 적합합니다.

현재 생성하는 ActiveRecord 클래스 중 하나와 동일한 이름의 부분 클래스를 만들고 사용자 정의 게터를 추가하는 방법 중 하나입니다.

public partial class child { 
    public parent parent { 
    get { return parent.SingleOrDefault(x => this.parent_id == x.id); } 
    } 
} 

용기가 있다면 T4 파일을 수정하여 더 효율적으로 수행 할 수 있어야합니다!

+0

답변 주셔서 감사합니다 ... 저는 Subsonic에서 LINQ 및 SQL 및 PLINQO로 이동하려고합니다. –