快速业务通道

数据库组件 Hxj.Data (九) (DbSession的其他介绍)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

Hxj.Data使用入口在Hxj.Data.DbSession,DbSession类封装常用的操作,比如: From<T>,Insert<T>,Update<T>,Delete<T>等常用方法。

DbSession.Default是一个默认的DbSession。在默认情况下会自动读取web.config/app.config配置文件中connectionStrings节点的最后一 个配置。

可以通过条用DbSession的SetDefault方法来修改这个Default。

不同的数据库可构造不同的DbSession,如:

DbSession dbSessionDefault = new DbSession("NorthwindConnectionString");
DbSession dbSessionDefault2 = new DbSession(DatabaseType.SqlServer, "Data Source=ricci\hu;Initial  Catalog=Northwind;Integrated Security=True");
("NorthwindConnectionString”是connectionStrings节点的name)

确定好需要使用的DbSession后,就可以配合实体工具生成的实体类开始数据库操作了。

下面例子使用DbSession.Default,以及Northwind数据库。

From<T>()的方法使用,这个是查询操作。

查询Products表中第一条数据并返回实体,代码如下。

Products product = DbSession.Default.From<Products>().ToFirst();

接下来我们来加个条件。

List<Products> products= DbSession.Default.From<Products>().Where(Products._.CategoryID == 2).ToList ();

当然也可以ToDataTable()返回DataTable,

ToDataSet()返回DataSet,

ToDataReader()返回IDataReader。

其实DbSession.Default.From<Products>()就是构造一个FromSection<Products>,也就是查询的条件,查询的字段,排序,分 页等都是FromSection提供的。

示例:

DbSession.Default.From<Products>()
         //.Select(Products._.ProductID) //查询返回ProductID字段
         //.GroupBy(Products._.CategoryID.GroupBy && Products._.ProductName.GroupBy)//按照CategoryID, ProductName分组
         //.InnerJoin<Suppliers>(Suppliers._.SupplierID == Products._.SupplierID)//关联Suppliers表  -- CrossJoin   FullJoin  LeftJoin  RightJoin 同理
         //.OrderBy(Products._.ProductID.Asc)//按照ProductID正序排序
         //.Where((Products._.ProductName.Contain("apple") && Products._.UnitPrice > 1) ||  Products._.CategoryID == 2)//设置条件ProductName包含”apple”并且UnitPrice>1 或者CategoryID =2
         //.UnionAll(DbSession.Default.From<Products>().Select(Products._.ProductID))//union all查询
         //.Distinct() // Distinct
         //.Top(5)  //读取前5条
         //.Page(10, 2)//分页返回结果 每页10条返回第2页数据
         //.ToDataSet();  //返回DataSet
         //.ToDataReader(); //返回IDataReader
         //.ToDataTable(); //返回DataTable
         //.ToScalar(); //返回单个值
         .ToList();  //返回实体列表

看方法后面的注释也差不多都应该明白了吧。

普通的查询都可以构造出来了,当然太复杂的报表还是手写sql或者存储过程等去实现吧。

下一节讲Insert<T>方法的使用。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号