在查询没有设置查询字段,组件默认是返回所有字段信息,即select * from table
那在查询中如何设置需要返回的字段信息呢?
在之前几节中的例子已经存在设置查询字段,是通过 select方法来设置的。
先上例子:
DbSession.Default.From<Products>() .Select(Products._.ProductID, Products._.ProductName) .ToDataTable();
这里是设置查询只返回productid和productname两个字段。
生成的sql:
Text:
SELECT [Products].[ProductID],[Products].[ProductName] FROM [Products]
有时候我们需要设置这个字段的别名,如select productname as pname from products
别名的设置也是非常简单的。
DbSession.Default.From<Products>() .Select(Products._.ProductID, Products._.ProductName.As("pname")) .ToDataTable();
生成的sql
Text:
SELECT [Products].[ProductID],[Products].[ProductName] AS [pname] FROM [Products]
是不是很简单的啊。
其实 Products._.ProductID 是一个Field类,表示字段信息。
Field也提供了一些简单的辅助方法。
方法 | sql |
Field.Count() | count 记录数 |
Field.Sum() | sum 合计 |
Field.Avg() | avg 平均值 |
Field.Len() | len 长度 |
Field.Trim() | 去掉左右空格 |
Field.Max() | 最大值 |
Field.Min() | 最小值 |
Field.Left(int length) | 从左边开始截取相应长度内容 |
Field.Right(int length) | 从右边开始截取相应长度内容 |
Field.Substring(int startIndex, int endIndex) | 截取相应的范围内的字段内容 |
还是上例子吧
DbSession.Default.From<Products>() .Select(Products._.UnitPrice.Max()) .ToScalar();
这里是查询products表中最大的unitprice.
生成的sql
Text:
SELECT max([Products].[UnitPrice]) AS [UnitPrice] FROM [Products]
其他方法都是类似就不再一一举例了。
有时候我们需要两个字段加减乘除,比如单价乘以数量出来总价。
先来个例子:
DbSession.Default.From<Order_Details>() .Select((Order_Details._.UnitPrice * Order_Details._.Quantity).As("totalprice")) .Top(10) .ToDataTable();
Text:
SELECT TOP 10 [Order Details].[UnitPrice] * [Order Details].[Quantity] AS [totalprice] FROM [Order Details]
组件重载了 Field 的 + – * / 这四个操作符。
分别代表了加、减、乘、除
下一节将讲述事务。
作者:steven hu
出处:http://www.cnblogs.com/huxj
MSN: cn_huxj@hotmail.com
交流QQ群:60831381
版权声明:欢迎任何网络媒体和网站转载本人博客的内容,只需注明作者和主博客文章地址的链接。另有约定者除外。
此声明随时可能修改,不另行通知。
出处:http://www.cnblogs.com/huxj
MSN: cn_huxj@hotmail.com
交流QQ群:60831381
版权声明:欢迎任何网络媒体和网站转载本人博客的内容,只需注明作者和主博客文章地址的链接。另有约定者除外。
此声明随时可能修改,不另行通知。
评论快速通道: