- 浏览: 1005366 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (445)
- Java (22)
- J2EE (18)
- Flex (102)
- Flex-blazeds (1)
- Flex-FABridge (2)
- Flex4 (3)
- CheckStyle (2)
- PowerDesigner (0)
- POI (2)
- Java2Word (2)
- 杂项 (15)
- 日记 (3)
- 数据库-oracle (41)
- 数据库-SQLServer (7)
- 中间件 (1)
- 英语 (8)
- C# (43)
- ASP.net (72)
- ASP.net MVC (28)
- 微软-Entity Framework (19)
- JavaScript (22)
- JQuery (31)
- EasyUI (3)
- VS2010 (4)
- CVS (1)
- Tomcat (3)
- Linux (1)
- 遗留问题 (1)
- iphone (1)
- MAC (0)
- 系统 (2)
- Web Service (4)
- Cache Manager (1)
- PMP (1)
- WCF (10)
- BootstrapJs (1)
- Web API (6)
- Go语言 (0)
- 网络协议 (2)
- Redis (10)
- RabbitMQ (10)
- Git (3)
- Kafka (5)
- ELK (5)
- Nginx (3)
- 测试 (2)
最新评论
-
ygm0720:
Table行拖拽自己实现 -
程乐平:
Flex4开发视频教程(27集)下载http://bbs.it ...
Flex4教程 -
liuweihug:
Jquery+asp.net 后台数据传到前台js进行解析的办 ...
AJAX $.toJSON的用法或把数组转换成json类型 -
weilikk:
谢谢谢谢!!
javascript IE下不能用 trim函数解决方法 -
gxz1989611:
vigiles 写道请问楼主:[Fault] exceptio ...
blazeds推送技术至Flex
复杂查询及函数
外键
Entity SQL 与其它的查询一样,可以通过外键的关系直接取值或判断,如:
using (var edm = new NorthwindEntities ())
{
string sqlStr = "SELECT VALUE o FROM NorthwindEntities.Orders AS o WHERE o.Customers.Country = 'Mexico'" ;
ObjectQuery <Orders > query = edm.CreateQuery<Orders >(sqlStr);
ObjectResult <Orders > result = query.Execute(MergeOption .NoTracking);
foreach (Orders o in result)
{
Console .WriteLine("{0},{1}" , o.OrderID, o.Customers.Address);
}
Console .WriteLine(query.ToTraceString());
}
我们直接用 o.Customers.Country 这是一个一对多的外键关系。
注: “ NorthwindEntities.Orders ” 中的 “ NorthwindEntities ” 可以省略的!
GroupBy
对数据进行分组查询可以使用以下语法:
SELECT o . OrderDate , Count ( o . OrderID ) AS Count FROM NorthwindEntities . Orders AS o GROUP BY o . OrderDate
直接进行 Group by 操作,而进行分组时也可以使用 Count 、 Max 、 Min 、 Sum 、 Avg 这几个函数,使用方法与 SQL 没有什么不同。
统计函数
Entity SQL 同样支持统计函数: Avg , BigCount,Count,Max,Min,StDev,Sum 。
类型转换
Null 文本与 Entity SQL 类型系统中的任何类型都兼容,可以使用 cast 进行类型转换,例如:
SELECT Length ( cast (e . Notes as string) ) from NorthwindEntities . Employees as e where e . EmployeeID = 1
其中, Nvarchar 等可以成 string ,数字类型可以转成 int32 ,其他的类型转换类似。如果无法完成转换,则将报异常。
字符串函数
我们先查询出一个字符串供下面函数演示使用:
SELECT e.Notes from NorthwindEntities . Employees as e where e.EmployeeID=1
-- 结果: Education includes a BA in psychology from Colorado State University in 1970. She also completed "The Art of the Cold Call." Nancy is a member of Toastmasters International.
IndexOf : 获取前面字符串在后面字符串中的位置。
SELECT IndexOf ( 'i' , e . Notes ) from NorthwindEntities . Employees as e where e . EmployeeID = 1
-- 结果: 7
Right
:
获取前面字符串从右面的
N
个字符,注意字符串必须要转换。
SELECT
Right
(
cast
(e.Notes as
string)
,14)
from
NorthwindEntities
.
Employees
as
e
where
e.EmployeeID=1
-- 结果: International.
Left : 同上
Length : 获取字符串长度。
SELECT Length ( cast (e . Notes as string) ) from NorthwindEntities . Employees as e where e . EmployeeID = 1
-- 结果: 175
SUBSTRING : 截取字符串,从字符串中 A 开始截取长度为 B 个字符。
SELECT SUBSTRING ( e.Notes,2,10 ) from NorthwindEntities . Employees as e where e . EmployeeID = 1
-- 结果: ducation i
LTrim 、 RTrim 、 Trim : 分别为删除字符串左、右、两侧空格。
SELECT Trim ( SUBSTRING ( e.Notes,2,9 )) from NorthwindEntities . Employees as e where e . EmployeeID = 1
-- 结果: ducation
Replace : 将字符串参数 A 中的字符串参数 B 替换为字符串参数 C 。
SELECT Replace ( cast (e.Notes as string), 'includes' , 'Astar' ) from NorthwindEntities . Employees as e where e . EmployeeID = 1
-- 结果: Education Astar a BA in psychology from Colorado State University in 1970. She also completed "The Art of the Cold Call." Nancy is a member of Toastmasters International.
ToLower 、 ToUpper : 大小写转换。
Reverse : 将字符串反转。
SELECT Reverse ( cast (e.Notes as string) ) from NorthwindEntities . Employees as e where e . EmployeeID = 1
-- 结果: .lanoitanretnI sretsamtsaoT fo rebmem a si ycnaN ".llaC dloC eht fo trA ehT" detelpmoc osla ehS .0791 ni ytisrevinU etatS odaroloC morf ygolohcysp ni AB a sedulcni noitacudE
数字函数
四舍五入: Round(1.4)
向下取整: Floor(1.9) >> 1
向上取整: Ceiling(1.1) >> 2
时间函数
当前时间: CurrentDateTime() >> 2011/1/6 20:34:09
格林威治时间: CurrentUtcDateTime()
年、月、日、时、分、秒: Year(e.BirthDate),Month(e.BirthDate),Day(e.BirthDate),Hour(e.BirthDate),Minute(e.BirthDate),Second(e.BirthDate)
GUID : NewGuid () >>4131d481-2291-4fe9-8756-6e2b1d99f607
位计算函数
如果提供 Null 输入,则这些函数返回 Null 。这些函数的返回类型与参数类型相同。如果函数采用多个参数,则这些参数必须具有相同的类型。若要对不同类型执行位运算,则需要显式强制转换为相同类型。( BitWiseAnd,BitWiseNot,BitWiseOr,BitWiseXo )
集合运算符
Set(Colleciton) :我们假定 Collection 中可以包含重复元素,那么, Set(Collection) 就取出 Collection 中的非重复的元素。
例如: Set({1,1,3,3,4}) 将得到结果 {1,3,4} 。
e IN collection : IN 运算符返回 e 是否在 collection 中。
例如: 1 IN {1,2,3} 返回 TRUE , 1 IN {-1,-2,-3} 返回 FALSE 。
EXISTS(collection) :判定 collection 是否为空,为空时返回 FALSE ,否则,返回 TRUE 。
例如: EXISTS({1}) 返回 TRUE ;而 EXISTS(SELECT V from {1,2,3} AS V WHERE V=-1) 返回 FALSE 。
collectionA UNION [ALL] collection : UNION 求两个集合的并集,并且去除相同的元素;而 UNION ALL 求两个集合并集,但是,同时包含重复元素。
例如: {1,2,3} UNION {2,3,4} 得到 {1,2,3,4} ,而 {1,2,3} UNION ALL {2,3,4} 得到 {1,2,3,2,3,4} 。
collecitonA INTERSECT collectionB : INTERSECT 求两个集合的交集。
例如: {1,2,3} INTERSECT {2,3} 得到 {2,3} 。注意,交集会去除重复元素。 {1,2,2,3} INTERSECT {2,2,3} 得到 {2,3} ,而非 {2,2,3}
collecitonA EXCEPT collecitonB : A EXCEPT B 代表:从 A 集合里减去 B 集合的元素。换句话说,就是取得 A 中有 B 中没有的元素。
例如: {1,2,3} EXCEPT {2,3} 将得到 {1} 。
collecitonA OVERLAPS collectionB : A OVERLAPS B 将判定 A 、 B 集合是否有交集,有则返回 TRUE ,没有则返回 FALSE 。其相当于 EXISTS(A INTERSECT B) 。
例如: {1,2,3} OVERLAPS {3,4} 返回 TRUE ,而 {1,2,3} OVERLAPS {4,5} 返回 FALSE 。
ANYELEMENT(collection) : ANYELEMENT 随机返回集合中的任意一个元素。
例如: ANYELEMENT({1,2,3}) 有可能返回 1 ,有可能返回 2 也有可能返回 3 。
发表评论
-
C# LINQ to SQL
2017-07-28 12:48 6381、Concat(连接不同的集合不会自动过滤相同项。会延迟计 ... -
基于 EntityFramework 的数据库主从读写分离服务插件
2017-03-08 15:06 11361. 版本信息和源码 1.1 版本信息 v1.01 be ... -
EF6(CodeFirst)+MySql开发
2017-01-06 14:08 1470如题,本文是使用EntityFramework6框架的感悟( ... -
<Entity Framework> - 直接执行数据库命令
2016-08-10 15:00 1511使用 EF 4.1 或者更新版本, 你可以直接执行任何数据库 ... -
EntityFramework执行SQL语句
2016-08-10 14:58 986在EF中执行Sql语句。 Insert Code: ... -
EntityFramework 执行SQL语句进行参数化查询代码示例
2016-08-10 14:59 1890在我们用EntityFramework时,一般情况下我们是要 ... -
Entity Framework 学习中级篇—使EF支持Oracle9i
2011-07-05 16:57 2960从Code MSDN上下载下来的EFOracleProvide ... -
Entity Framework 学习中级篇—EF支持复杂类型的实现
2011-07-05 16:56 12659http://www.cnblogs.com/xray20 ... -
Entity Framework 学习初级篇--ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateMa
2011-07-05 16:55 6904本节,简单的介绍EF中的 ObjectContext ... -
Entity Framework 学习初级篇--EF基本概况
2011-07-05 16:53 3651自从Entity Framework(EF ... -
Entity Framework 学习高级篇—改善EF代码的方法
2011-07-05 16:39 10112本节,我们将介绍一些改善EF代码的相关方法,如NoTrac ... -
Entity Framework 学习总结之十一:POCO
2011-06-30 11:24 12060POCO Entity Framework ... -
Entity Framework 学习总结之十:加载相关对象
2011-06-30 11:23 3792加载相关对象 实体类型可以定义在数据模型中表 ... -
Entity Framework 学习总结之九:LinqToEntities
2011-06-30 11:22 1614介绍 LINQ to Entities ... -
Entity Framework 学习总结之七:EntitySQL 基本查询
2011-06-30 11:20 2089Entity SQL 基本查询 SW ... -
Entity Framework 学习总结之六:EntitySQL 介绍入门
2011-06-30 11:19 1995Entity SQL Language 简介 ... -
Entity Framework 学习总结之五:EntityClient
2011-06-30 11:18 3494System.Data.EntityClient E ... -
Entity Framework 学习总结之四:对象服务介绍使用
2011-06-30 11:18 3052System.Data.Objects (System ...
相关推荐
EntityFramework.Functions EntityFramework.Functions库实现对以下对象的代码优先支持: 存储过程,具有: 单一结果类型 多种结果类型 输出参数 表值函数,返回 实体类型 复杂类型 标量值函数 可组合的 不可组合...
C#函数,该函数将依赖项注入和实体框架核心与Azure SQL结合使用。 注意事项: 我想使用设计优先的迁移方式,所以我为工具创建了一个IDesignTimeDbContextFactory来生成正确的DbContext 。 我还必须在.csproj文件...
在以前学习和使用WinForm、ASP.NET WebForm、三层架构的时候,对于数据访问的实现,无论是什么逻辑,简单还是复杂,无论是执行SQL语句还是调用存储过程都要用到ADO.NET技术,通过封装好的SQLhelper类传入SQL语句和Sql...
1、原版NFine框架经过修改,由Ms SqlServer数据库改成MySQL数据库,去掉原版的后门连接...2、数据库驱动采用EF6的MySql.Data.EntityFramework 和MySql.Data版本:8.0.13.0, 3、在VS2017和.NET Framework 4.72下编译通过
1、原版NFine框架经过修改,由Ms SqlServer数据库改成MySQL数据库,去掉原版的后门连接...2、数据库驱动采用EF6的MySql.Data.EntityFramework 和MySql.Data版本:8.0.13.0, 3、在VS2017和.NET Framework 4.72下编译通过
投影变换、数据格式转换、数据裁切、拼接等内容分别简单介绍
另外,从Spring 2.0开始增加了对命名SQL查询的支持,也增加了对分页的支持。 24.3 Spring对Hibernate的简化 24.3.3 HibernateTemplate的常用方法 void delete(Object entity):删除指定的持久化实例 void delete...
SqlSharpener通过解析SQL文件以创建一个元对象层次结构来实现此目的,通过该元对象层次结构可以生成C#代码,例如存储过程包装程序或Entity Framework Code-First实体。 您可以手动执行此操作,也可以通过调用其中...
对于各种常用SQL函数和运算符,都可以自动转换为当前数据库支持的方言来操作。其函数支持也要多于HQL支持的函数。 阅读推荐:第7、8章 特点三,可能是业界最快的ORM框架. 得益于ASM的动态代码生成技术,部分耗时...
13.7.4 LINQ to Entities,ADO.NET Entity Framework的LINQ接口 383 13.8 小结 384 第14章 使用LINQ操作DataSet 385 14.1 LINQ to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能...
SQL server 2005中新增的排序函数及应用 根据基本表结构及其数据生成 INSERT ... 的 SQL 简便的MS SQL 数据库 表内容 脚本 生成器 将表数据生成SQL脚本的存储过程 直接从SQL语句问题贴子数据建表并生成建表语句的...
13.7.4 LINQ to Entities,ADO.NET Entity Framework的LINQ接口 383 13.8 小结 384 第14章 使用LINQ操作DataSet 385 14.1 LINQ to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能...
13.7.4 LINQ to Entities,ADO.NET Entity Framework的LINQ接口 383 13.8 小结 384 第14章 使用LINQ操作DataSet 385 14.1 LINQ to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能...
13.7.4 LINQ to Entities,ADO.NET Entity Framework的LINQ接口 383 13.8 小结 384 第14章 使用LINQ操作DataSet 385 14.1 LINQ to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能...
13.7.4 LINQ to Entities,ADO.NET Entity Framework的LINQ接口 383 13.8 小结 384 第14章 使用LINQ操作DataSet 385 14.1 LINQ to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能...
13.7.4 LINQ to Entities,ADO.NET Entity Framework的LINQ接口 383 13.8 小结 384 第14章 使用LINQ操作DataSet 385 14.1 LINQ to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能...
13.7.4 LINQ to Entities,ADO.NET Entity Framework的LINQ接口 383 13.8 小结 384 第14章 使用LINQ操作DataSet 385 14.1 LINQ to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能...
13.7.4 LINQ to Entities,ADO.NET Entity Framework的LINQ接口 383 13.8 小结 384 第14章 使用LINQ操作DataSet 385 14.1 LINQ to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能...
13.7.4 LINQ to Entities,ADO.NET Entity Framework的LINQ接口 383 13.8 小结 384 第14章 使用LINQ操作DataSet 385 14.1 LINQ to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能...
13.7.4 LINQ to Entities,ADO.NET Entity Framework的LINQ接口 383 13.8 小结 384 第14章 使用LINQ操作DataSet 385 14.1 LINQ to DataSet概览 385 14.2 DataSet回顾 386 14.2.1 DataSet使用场景及功能...