2009-06-01 2 views
1

내 개별 저장소 (예 : UserRepository)의 기초로 RepositoryBase < T> 기본 클래스를 사용하고 있습니다.C# : 일반 RepositoryBase 클래스를 통해 SQL 뷰에 액세스 하시겠습니까?

그것은 예를 들어 등 새로운 요소를 추가하는 등의 작업을 단순화

public IQueryable<T> SelectAll() 
{ 
    return db.GetTable<T>().AsQueryable<T>(); 
} 

지금 내 데이터베이스에보기 "UserActive"를 추가했습니다. 유사한 방식으로보기에 액세스 할 수있는 방법이 있습니까? 예 : T = User이면 db.UsersActive 뷰를 반환하겠습니까? 이 특별한 일회성 사건의 경우

답변

0

, 당신은 할 수 :

if (typeof(T) == typeof(User)) 
{ 
    return db.GetView<UserActive>().AsQueryable<UserActive>(); 
} 
else 
{ 
    return db.GetTable<T>().AsQueryable<T>(); 
} 

물론 이것은 당신이 당신 LINQ 공급자 - P YMMV

를 사용하여 useractive보기에 액세스 할 방법에 대한 가정을 만든다
관련 문제