您的位置:首页 > 数据库

开源组件Smark.Data处理SQL和存储过程

2012-10-19 21:19 323 查看

完全通过组件对象描述的方式来完成所有数据库操作是不太现实的事情,所以组件提供SQL和存储过程的执行支持.随着组件版本的不断完善在1.7后组件在使用SQL和存储也是一件极其方便的事情.其简洁的操作方式相信在其他数据访问组件中难以体验到.


SQL处理


组件提供一个SQL对象用于直接处理SQL语句,由于重写了运算符,所以对象可以直接通过string来进行初始化.

    SQL sql = "delete from employees where employeeid=@p1";
sql["p1", 11].Execute();

执行查询

SQL合并操作

sql = "select * from orders where 1=1";
if (from != null)
sql = " and orderdate >=@p1" + sql["p1", from.Value];
if (to != null)
sql = " and orderdate <=@p2" + sql["p2", to.Value];
items = sql.List<Order>();

统计

混合条件

由于组件提供基于对象的描述表达,但对于一些复杂的条件其某些字条件用string描述相对来说会更简单简洁.

Expression exp = Order.orderDate > "1996-1-1"; exp &= " customerid in(select customerid from customers where country=@p1)"; items= exp["p1", "usa"].List<Order>();

存储处理


组件支持直接存储过程执行,而存储过程的描述基本和表实体描述一样.以下是一个简单的存储过程描述:

public class CustOrderHist
{
[ProcParameter]
public string CustomerID { get]    CustOrderHist cohist = new CustOrderHist();
cohist.CustomerID = "ANATR";
cohist.ExecProc_();

也可以根据执行存储返回一个数据集,以下存储过程的结果如下:




可以针对相应的字段定义一个对象:

    CustOrderHist cohist = new CustOrderHist();
cohist.CustomerID = "ANATR";
IList<CustOrderHistData> datas = cohist.ExecProcToObjects_<CustOrderHistData>();


项目地址:http://smark.codeplex.com/

官网主页:http://www.ikende.com/SmarkData.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐