建一个查询实体,通过查询实体传递查询参数,对应建业务层方法,至于数据层,可以对应业务层有相关方法,也可以给个GetAll然后业务层进一步筛选(总数据不大的情况下这样高效且灵活)
就拿查找会员来说:
class User {
string Name { get; set; }
DateTime Birthday { get; set; }
string Gender { get; set; }
}
查询实体:
class ComplexUserQuery {
string NameKeyword { get; set; } //查找姓名的关键字
DateTime? MinBirthday { get; set;} //查找生日的最小值
DateTime? MaxBirthday { get; set; }
string Gender { get; set; }
}
业务层:
public IList<User> SearchUser(ComplexUserQuery query);
数据层:
自己拼接SQL去
我是用 实体类也代劳了 查询实体CommandCriteria,这样就省掉了查询实体,在实用中,有时为了查询,可能要给实体类添加几个熟悉,但肯定不多。实体类有个属性,即Criteria。 另有生成 过滤条件的辅助类,这个辅助类不属于任何层,但主要用于数据访问层。
实体共用层
数据访问层
public IListView<User> SearchUser(User criteria);
业务逻辑层