- 浏览: 1024488 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (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 6811、Concat(连接不同的集合不会自动过滤相同项。会延迟计 ... -
基于 EntityFramework 的数据库主从读写分离服务插件
2017-03-08 15:06 11751. 版本信息和源码 1.1 版本信息 v1.01 be ... -
EF6(CodeFirst)+MySql开发
2017-01-06 14:08 1574如题,本文是使用EntityFramework6框架的感悟( ... -
<Entity Framework> - 直接执行数据库命令
2016-08-10 15:00 1559使用 EF 4.1 或者更新版本, 你可以直接执行任何数据库 ... -
EntityFramework执行SQL语句
2016-08-10 14:58 1051在EF中执行Sql语句。 Insert Code: ... -
EntityFramework 执行SQL语句进行参数化查询代码示例
2016-08-10 14:59 1927在我们用EntityFramework时,一般情况下我们是要 ... -
Entity Framework 学习中级篇—使EF支持Oracle9i
2011-07-05 16:57 3014从Code MSDN上下载下来的EFOracleProvide ... -
Entity Framework 学习中级篇—EF支持复杂类型的实现
2011-07-05 16:56 12712http://www.cnblogs.com/xray20 ... -
Entity Framework 学习初级篇--ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateMa
2011-07-05 16:55 6955本节,简单的介绍EF中的 ObjectContext ... -
Entity Framework 学习初级篇--EF基本概况
2011-07-05 16:53 3707自从Entity Framework(EF ... -
Entity Framework 学习高级篇—改善EF代码的方法
2011-07-05 16:39 10164本节,我们将介绍一些改善EF代码的相关方法,如NoTrac ... -
Entity Framework 学习总结之十一:POCO
2011-06-30 11:24 12109POCO Entity Framework ... -
Entity Framework 学习总结之十:加载相关对象
2011-06-30 11:23 3820加载相关对象 实体类型可以定义在数据模型中表 ... -
Entity Framework 学习总结之九:LinqToEntities
2011-06-30 11:22 1654介绍 LINQ to Entities ... -
Entity Framework 学习总结之七:EntitySQL 基本查询
2011-06-30 11:20 2132Entity SQL 基本查询 SW ... -
Entity Framework 学习总结之六:EntitySQL 介绍入门
2011-06-30 11:19 2050Entity SQL Language 简介 ... -
Entity Framework 学习总结之五:EntityClient
2011-06-30 11:18 3529System.Data.EntityClient E ... -
Entity Framework 学习总结之四:对象服务介绍使用
2011-06-30 11:18 3096System.Data.Objects (System ...
相关推荐
- **查询优化**:Entity Framework能够智能地优化查询语句,将其转化为高效的SQL语句。 - **类型安全**:使用LINQ to Entities进行查询时,编译器会在编译时检查语法错误,提高了程序的健壮性。 #### 四、总结 LINQ...
标题中的`EntityFramework.SqlServer_EntityFramework_`可能是指这个项目或库是关于Entity Framework与SQL Server数据库交互的一个部分,可能是对原生EF的增强或者封装,目的是为了简化和优化SQL Server的数据操作。...
本篇学习笔记主要关注的是Entity SQL(E-SQL),这是EF提供的一种结构化查询语言,类似于标准的SQL,但设计用于与EF一起工作。E-SQL并不支持直接的Insert、Update、Delete操作,这意味着开发者不能像在常规SQL中那样...
Entity Framework(EF)是Microsoft开发的一个对象关系映射(ORM)框架,用于.NET应用程序,它允许开发者使用.NET语言(如C#或VB.NET)来操作数据库,而无需编写大量的SQL语句。通过EF,开发者可以将数据库操作抽象...
为了适应不同应用场景,Entity Framework Core提供了多个.NET实现的支持,并详细描述了不同的数据库提供程序(如Microsoft SQL Server、SQLite、内存优化表InMemory),以及如何编写自定义的数据库提供程序。...
Entity Framework(EF)是ADO.NET框架中用于构建数据驱动的应用程序的一项技术。它提供了一种抽象的方式来处理数据库,允许开发者使用对象-关系映射(ORM)方式与数据交互,而不是直接编写SQL语句。EF的核心是实体...
扩展可以提供更强大的查询工具,如动态SQL生成,或者支持更复杂的聚合和分析函数。 7. **数据库兼容性**:Entity Framework原生支持多种数据库,但可能无法满足所有特定数据库供应商的功能。扩展可以提供针对特定...
9. **Entity Framework的原理及使用方式**:这部分内容总结了Entity Framework的工作原理,并提供了多种使用方式的对比和建议。 10. **使用技巧及需要注意的问题**:分享了一些实用的使用技巧和注意事项,帮助...
ADO.NET Entity Framework 是微软开发的一种ORM(对象关系映射)框架,它允许开发者使用.NET语言(如C#或VB.NET)来操作数据库,而无需直接编写SQL语句。这个框架的核心概念是实体数据模型(Entity Data Model,EDM...
此外,还介绍了使用原始SQL查询和数据库函数的方法,并且说明了如何应用全局查询筛选器和查询标记。 保存数据章节讲解了如何进行基本的保存操作,如何处理并发冲突,以及如何使用事务来保证数据的完整性。还涉及到...
EntityFramework.Functions EntityFramework.Functions库实现对以下对象的代码优先支持: 存储过程,具有: 单一结果类型 多种结果类型 输出参数 表值函数,返回 实体类型 复杂类型 标量值函数 可组合的 不可组合...
【Entity Framework】是微软开发的一款面向对象的ORM(Object-Relational Mapping)框架,它允许开发者使用.NET编程语言(如C#或VB.NET)来操作数据库,而无需关注底层的SQL语句。这篇教程旨在帮助学习者掌握EF的核心...
9. **复杂查询与聚合函数**:介绍如何使用Linq to Entities执行复杂的查询,包括分组、排序、联接和聚合函数,如Sum、Count、Average等。 10. **异常处理与事务**:讲解如何处理Entity Framework操作中可能出现的...
- **EntityClient + EntitySQL**:这种方式类似于传统的SQL查询,使用EntitySQL来构造查询语句。 - **对象服务 + EntitySQL**:这种方式也支持使用EntitySQL,但是通过对象服务来执行查询。 - **对象服务 + LINQ**:...
EntityFramework(简称EF)是微软提供的一款开源对象关系映射(ORM)框架,它使得.NET开发者可以使用面向对象的方式来操作数据库,而无需关心底层的SQL语句。在本项目"EntityFramework之增删改"中,我们将深入探讨...
4. **查询表达力增强**:Linq to Entities在EF 6.0中得到扩展,支持更多的SQL函数和操作,使得在C#代码中构建复杂的查询更为方便。 5. **扩展性**:开源后,EF 6.0的扩展性得到了显著增强,开发者可以自定义策略,...
除了通过 LINQ 查询之外,Entity Framework 还支持使用原始 SQL 查询和存储过程等方式操作数据。这对于需要执行复杂查询或调用数据库特定功能的场景非常有用。 #### 为什么要使用 Entity Framework - **提高生产力*...
- **EntitySQL概述**:一种类似于SQL的查询语言,用于直接编写查询表达式。 **3.5 使用方法进行查询** - **方法使用**:除了LINQ和EntitySQL之外,还可以使用ObjectQuery和ObjectSet等方法进行数据查询。 - **示例...
《 Beginning.Entity.Framework.Core.2.0 (英文版含源码)》是一本专注于介绍Entity ...通过对这些知识点的学习,开发者可以熟练地使用Entity Framework Core 2.0进行数据访问,提高开发效率并降低数据库操作的复杂性。