Hxj.Data 数据库组件文档 下载本文

数据库组件 Hxj.Data (二)(实体生成工具)

实体生成工具的界面如下图:

目前工具支持MsAccess,Sql Server, Sqlite, Oracle数据库的实体生成。 下面单个实体生成演示, Northwind数据库的Customers表

13

也可以批量生成数据库所有表的实体。如下图

14

实体的生成很简单。

下面章节将讲述Hxj.Data的具体使用。

数据库组件 Hxj.Data (三)(查询操作篇)

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

DbSession.Default是一个默认的DbSession。在默认情况下会自动读取

web.config/app.config配置文件中connectionStrings节点的最后一个配置。 可以通过条用DbSession的SetDefault方法来修改这个Default。 不同的数据库可构造不同的DbSession,如:

15

DbSession dbSessionDefault = new DbSession(\); DbSession dbSessionDefault2 = new DbSession(DatabaseType.SqlServer, \Source=ricci\\hu;Initial Catalog=Northwind;Integrated Security=True\);

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

下面例子使用DbSession.Default,以及Northwind数据库。 From()的方法使用,这个是查询操作。

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

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

接下来我们来加个条件。

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

当然也可以ToDataTable()返回DataTable,ToDataSet()返回DataSet,ToDataReader()返回IDataReader。

其实DbSession.Default.From()就是构造一个

FromSection,也就是查询的条件,查询的字段,排序,分页等都是FromSection提供的。 示例:

DbSession.Default.From()

//.Select(Products._.ProductID) //查询返回ProductID字段

//.GroupBy(Products._.CategoryID.GroupBy && Products._.ProductName.GroupBy)//按照CategoryID,ProductName分组

//.InnerJoin(Suppliers._.SupplierID == Products._.SupplierID)//关联Suppliers表 --CrossJoin FullJoin LeftJoin RightJoin 同理

//.OrderBy(Products._.ProductID.Asc)//按照ProductID正序排序

//.Where((Products._.ProductName.Contain(\Products._.CategoryID == 2)//设置条件ProductName包含”apple”并且UnitPrice>1 或者CategoryID =2

//.UnionAll(DbSession.Default.From().Select(Products._.ProductID))//union all查询

//.Distinct() // Distinct //.Top(5) //读取前5条

//.Page(10, 2)//分页返回结果 每页10条返回第2页数据 //.ToDataSet(); //返回DataSet //.ToDataReader(); //返回IDataReader //.ToDataTable(); //返回DataTable //.ToScalar(); //返回单个值 .ToList(); //返回实体列表

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

16