2011-04-22 2 views
0

가끔 내 repo 메소드를 어떻게 만들어야하는지 궁금합니다.새 Repo 방법을 만들어야합니까?

나는이

public List<TableA> Get(Guid id) 
    { 
     return session.Query<TableA>().Where(x => x.Id== id).ToList(); 
    } 

지금 내 서비스 레이어에 몇 곳에서 이것을 사용하지만 한 곳에서 나는 선택을 할 필요가 있습니다.

는 내가 새로운 방법하거나 반환을 할 필요가있는 경우이

public List<string> GetNames(Guid id) 
    { 
     return session.Query<TableA>().Where(x => x.Id== id).Select(x => x.Name).ToList(); 
    } 

또는

//이 내 서비스 계층에

public void ServiceGet(Guid id) 
{ 
    myRepo.Get(id).Select(x => x.Name).ToList(); 
} 

나는 확실히 결코 생각하지해야 몇 가지 일반적인 결과를 얻은 다음 서비스 계층에서 필터링을 처리하도록합니다.

+0

'ToList'를 일찍 사용하는 것 같습니다. 대신에'Where'의 결과를 리턴하지 말고, 메소드가 호출 된 후에'Select' 또는'ToList'를 추가 할 수 있습니다. – juharr

+0

@ juharr - ToList를 다시해야하는 것을 막을 수있을 것 같았습니다.하지만 이것과 같은 방법으로 별도의 메소드를 작성해야합니까 아니면 일반적인 결과를 되돌려 보내고 선택 및 필터링을 더하게할까요? – chobo2

답변

1

데이터베이스가 가능한 한 많은 필터링을 수행하도록해야합니다. 성능 조정을 할 시간이되면 가장 유연하게 사용할 수 있습니다. 까다로운 부분은 필터링과 비즈니스 로직 간의 미세한 경계를 이끌어내는 것입니다.

+1

당신은 그 질문을 이해하지 못했다. – jason

+0

@ Jason : 왜 그렇게 말합니까? – jgauffin

+0

질문을 다음과 같이 읽었습니다. Repo 레이어 또는 서비스 레이어를 필터링하는 것이 더 좋습니까? 내 대답은 레포 야. –

관련 문제