开发者

Need an advice regarding accessing the database

Suppose I have a Comment class having properties and their methods like

public Comment GetComment(Guid id)

And

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

Now, What I usually do is write the database logic for each of the above methods . That said, Now I am seeing BlogEngine.NET code and He wrote in this way; He wrote the Database logic for GetComments() method and extracted from it for all remaining methods, even for GetComment(Guid id) by using something like

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

My question is, is it a good idea to do it in this way rather than the first approach? Any pros and cons of this way and suggesti开发者_如何学Cons and pointers and resources are most welcome. TIA Srinivas


It's a good idea to re-use code where possible rather than rewriting, but this is not the best way to do it. It requires extracting all rows from the database and then filtering them on the client. If you use Linq, you can follow the same pattern of reusing queries, but the filtering will be done in the database instead of on the client, improving performance.

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜