代码改变世界

ADO.NET Entity FrameWork 学习笔记之函数

2010-02-28 16:45  爱研究源码的javaer  阅读(560)  评论(0编辑  收藏  举报

对数据进行分组查询可以使用以下语法:

string entitySQL = @"SELECT o.OrderDate, Count(o.OrderID) AS Count 
FROM Orders AS o GROUP BY o.OrderDate
";
var query = db.CreateQuery<DbDataRecord>(entitySQL);

直接进行Group by操作

而进行分组时也可以使用Count、Max、Min、Sum、Avg这几个函数

使用方法与SQL没有什么不同,所以这里仅做介绍

函数

函数部分与一般的SQL有些不同这里给出一些例子

按位的与、或、异或操作:

db.CreateQuery<Int32>(@"BitwiseAnd(1,0)")//与 全1才1
db.CreateQuery<Int32>(@"BitwiseOr(1,0)")//或 有1即1
db.CreateQuery<Int32>(@"BitwiseXor(1,0)")//异或 不同为1

字符串处理(SampleQueries这部分的不少例子有错误,请大家见机更正,以下示例都为正确示例)

db.CreateQuery<Int32>("IndexOf('d','zhongdian')")//获取前面字符串在后面字符串中的位置,本例结果为6
db.CreateQuery<string>("Right('zhongdian',3)")//右取长度3的字符串,ian
db.CreateQuery<string>("Left('zhongdian',4)")//左取长度4的字符串,zhon
db.CreateQuery<string>("Length('abc')")//字符串长度,3
db.CreateQuery<string>("SUBSTRING('zhongdian',2,3)")//子字符串,索引2开始,取长度3,hon
db.CreateQuery<string>("LTrim(' text ')")//去除左边空格,“text ”
db.CreateQuery<string>("RTrim(' text ')")//去除右边空格,“ text”
db.CreateQuery<string>("Trim(' text ')")//去除两边空格,“text”
db.CreateQuery<string>("Replace('zhongdian','zhong','chong')")//替换,将参数1中的参数2换为参数3,chongdian
db.CreateQuery<string>("ToLower('Abc')")//转小写,abc
db.CreateQuery<string>("ToUpper('Abc')")//转大写,ABC
db.CreateQuery<string>("Reverse('Abc')")//反转,cbA

 

数字函数:

db.CreateQuery<double>("Round(1.4)")//四舍五入
db.CreateQuery<double>("Floor(1.9)")//向下取整,即省去小数部分
db.CreateQuery<double>("Ceiling(1.1)")//向上取整,无论小数部分多大都进1

时间函数:

db.CreateQuery<DateTime>("CurrentDateTime()")//获取当前时间
db.CreateQuery<DateTime>("CurrentUtcDateTime()")//获取格林威治时间
db.CreateQuery<DbDataRecord>("SELECT o.RequiredDate, Year(o.RequiredDate), Month(o.RequiredDate), Day(o.RequiredDate), Hour(o.RequiredDate), Minute(o.RequiredDate), Second(o.RequiredDate) FROM Orders AS o");//获取时间的年,月,日,时,分,秒的值

GUID函数:

db.CreateQuery<string>("CAST(NewGuid() as System.String)")//生成一个GUID值

用途:可以利用GUID来进行随机取数据(即OrderBy NewGuid())

 

 

转自:http://www.cnblogs.com/chsword/archive/2008/10/01/ef_esql5.html