假设我有一个具有属性及其方法的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);
}
);
我的问题是,以这种方式而不是这样做是不是一个好主意 第一种方法? 这种方式的任何利弊和建议和指针和 资源是最受欢迎的。 TIA SRINIVAS
答案 0 :(得分:2)
尽可能重用代码而不是重写代码是个好主意,但这不是最好的方法。它需要从数据库中提取所有行,然后在客户端上过滤它们。如果使用Linq,则可以遵循相同的重用查询模式,但过滤将在数据库中而不是在客户端上完成,从而提高性能。
public IQueryable<Comment> GetCommentsByAuthor(Author author) {
return GetComments().Where(comment => comment.Author.Id == author.Id);
}