首页 新闻 赞助 找找看

迷迷糊糊: 实体\数据\业务分离后"查询功能"如何设计

0
悬赏园豆:20 [已关闭问题]

MIS中 实体\数据\业务分离后"查询功能"如何设计?

特别是对于 某些高级查询中的范围性查询.

是像DiscuzNT 那样提供 SearchXXX(...) 方法吗? 还是有另外的出路?

life++的主页 life++ | 菜鸟二级 | 园豆:312
提问于:2009-03-09 12:14
< >
分享
其他回答(1)
0

建一个查询实体,通过查询实体传递查询参数,对应建业务层方法,至于数据层,可以对应业务层有相关方法,也可以给个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去

Gray Zhang | 园豆:17610 (专家六级) | 2009-03-09 18:23
0

我是用 实体类也代劳了 查询实体CommandCriteria,这样就省掉了查询实体,在实用中,有时为了查询,可能要给实体类添加几个熟悉,但肯定不多。实体类有个属性,即Criteria。 另有生成 过滤条件的辅助类,这个辅助类不属于任何层,但主要用于数据访问层。

实体共用层

数据访问层

public IListView<User> SearchUser(User criteria);

业务逻辑层



要有好的心情 | 园豆:502 (小虾三级) | 2009-03-11 23:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册