2009-11-29 3 views
1

속성과 메소드가있는 Comment 클래스가 있다고 가정하고데이터베이스 액세스에 관한 조언이 필요합니다.

public Comment GetComment(Guid id) 

public static List<Comment> GetComments() 
public static List<Comment> GetCommentsByAuthor(Author id) 

이제 일반적으로 위의 메서드 각각에 대해 데이터베이스 논리를 작성합니다. 즉, 이제 BlogEngine.NET 코드를보고 있는데 그는이 방식으로 썼습니다. 그는 GetComments() 메소드에 대한 데이터베이스 로직을 작성하고 나머지 모든 메소드에 대해 에 의해 추출 된 GetComment (Guid id)조차도

 //FindAll is a method in List<T> class 
    FindAll(delegate(Comment comment) 
    { 
    return comment.Author.Equals(author , 
    StringComparison.OrdinalIgnoreCase); 
    } 
    ); 

와 같은 것을 사용하여 을 추출했습니다. 첫 번째 방법보다는이 방법으로 할 수 있습니까? 이 방법과 제안 및 포인터와 리소스에 대한 장단점은 언제나 환영합니다. xxxx TIA Srinivas

답변

2

가능한 경우 다시 작성하지 말고 코드를 다시 사용하는 것이 좋습니다.하지만이를 수행하는 가장 좋은 방법은 아닙니다. 데이터베이스에서 모든 행을 추출한 다음 클라이언트에서 필터링해야합니다. Linq를 사용하는 경우 동일한 패턴의 쿼리 재사용을 수행 할 수 있지만 필터링은 클라이언트가 아닌 데이터베이스에서 수행되므로 성능이 향상됩니다.

public IQueryable<Comment> GetCommentsByAuthor(Author author) { 
    return GetComments().Where(comment => comment.Author.Id == author.Id); 
} 
관련 문제