数据库组件 Hxj.Data (二)(实体生成工具)
实体生成工具的界面如下图:
目前工具支持MsAccess,Sql Server, Sqlite, Oracle数据库的实体生成。 下面单个实体生成演示, Northwind数据库的Customers表
13
也可以批量生成数据库所有表的实体。如下图
14
实体的生成很简单。
下面章节将讲述Hxj.Data的具体使用。
数据库组件 Hxj.Data (三)(查询操作篇)
Hxj.Data使用入口在Hxj.Data.DbSession,DbSession类封装常用的操作,比如:From
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
接下来我们来加个条件。
List
当然也可以ToDataTable()返回DataTable,ToDataSet()返回DataSet,ToDataReader()返回IDataReader。
其实DbSession.Default.From
FromSection
DbSession.Default.From
//.Select(Products._.ProductID) //查询返回ProductID字段
//.GroupBy(Products._.CategoryID.GroupBy && Products._.ProductName.GroupBy)//按照CategoryID,ProductName分组
//.InnerJoin
//.OrderBy(Products._.ProductID.Asc)//按照ProductID正序排序
//.Where((Products._.ProductName.Contain(\Products._.CategoryID == 2)//设置条件ProductName包含”apple”并且UnitPrice>1 或者CategoryID =2
//.UnionAll(DbSession.Default.From
//.Distinct() // Distinct //.Top(5) //读取前5条
//.Page(10, 2)//分页返回结果 每页10条返回第2页数据 //.ToDataSet(); //返回DataSet //.ToDataReader(); //返回IDataReader //.ToDataTable(); //返回DataTable //.ToScalar(); //返回单个值 .ToList(); //返回实体列表
看方法后面的注释也差不多都应该明白了吧。
16