查询是操作做多的一个了当然方法也是最多的
还是用代码来说话吧
直接传SQL语句版
IList
<
RJ.Model.Users
>
ss
=
db.ToIList
<
RJ.Model.Users
>
(
"
select * from Users where U_Id>2
"
);
RJ.Model.Users user
=
db.Single(
"
select top 1 * from Users where U_Id=2
"
);
IList < RJ.Model.Users > ss2 = db.ToIList < RJ.Model.Users > ( " select * from Users where u_id>@u_id " , new System.Data.SqlClient.SqlParameter( " @u_id " , 2 ));
IList < RJ.Model.Users > ss2 = db.ToIList < RJ.Model.Users > ( " select * from Users where u_id>@u_id " , new System.Data.SqlClient.SqlParameter( " @u_id " , 2 ));
当然很多人会反对直接用sql语句 但不可否认大多数的公司都在用这种方法(不算大公司哈 大公司我也没去过不知道) 就算你是只写 "u_id>2"传到BLL DAL中也算
还是说下查询的原理吧 因为我们最关心的还是性能的问题
RJ中所以查询都是以DataReader的方试查询的在转换成IList<RJ.Model.Users>也不是单纯的用的反射因为那样做很慢 而是用的Emit来编写的 了解Emit都知道用了Emit就完全不用考虑性能方面的问题了
当然有的人不想返回对象想返回DataSet 没关系 ToDataSet就行了
查询也有异步方法居体参照之前的随笔就不在这写了
查询当然不能忘了缓存 不管是网站还是什么缓存是最最重要的东西
好了看下RJ是怎么实现缓存的
IList
<
RJ.Model.Users
>
ss
=
db.ToIList
<
RJ.Model.Users
>
(
"
select * from Users where U_Id>2
"
,
1000
);
看很简单吧来看看和之前的差别 只是多了个缓存时间的参数 (单位 秒)
完