- 浏览: 1021752 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (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 Language 简介
什么是 Entity SQL
Entity SQL 类似 SQL 语言,它的存在是为了查询 ADO.NET Entity Framework ( EF ),以用于支持 Entity Data Model ( EDM ) 。 EDM 表示一组实体与关系( ER )的集合,映射到指定的数据源(可以是 MsSql 或其它类型的数据库)。 Entity SQL 支持 EDM ,使用户能够有效地查询数据。
Entity SQL 与 T-SQL
Entity SQL 支持 EDM 的直接查询,包括它的继承及关系。它在语法上与 T-SQL 类似,但也有很多不同。
支持与不支持的查询:
1) from 子句
2) in 和 exists
3) union, intersect, except 来表示并交差集
4) join 表达式
5) 支持 p.Address.City 这种级联查询
6) 不支持 * 操作
7) group by 时也要 select k from T as t group by (t.x + t.y) as k 这种方式
8) 无法使用 T-SQL 的函数
它支持 T-SQL 的子查询和表达式,它可以用于任何支持它的数据库,这里给出一些合法的表达式:
· 1+2 *3
· "abc"
· row(1 as a, 2 as b)
· { 1, 3, 5}
· e1 union all e2
· set(e1)
对比的例子:
T-SQL : select t.x + t.y from T as t group by t.x + t.y
Entity SQL : select k from T as t group by (t.x + t.y) as k
Entity Sql 也支持这种方式: select Tab.a from Tab
Entity SQL 支持的数据类型:
· 第一类是原始数据类型,例如 EMD.Int32 。
· 第二类是在模式( Schema )中定义的类型,例如实体类型、关系类型等;
· 第三类是临时出现的类型:像集合、行和引用,它们都是匿名类型。
临时出现的类型
首先,为什么管它们叫归结为临时出现的类型?大家知道, EF 采用对象模型,而 SQL 等数据库是关系模型,它们之间要进行数据传递,必然有一个关系模型到对象模型的转换;另外,关系模型的相互数据交换,也可借用一下这些类型直接进行,而不必绕圈子。而这些类型的数据,一旦这个交互种过结束,也就意味着这个类型的对象将会消亡。故将这一些类型归结为一类。
其次,这一类包含了哪些数据类型?
1) 集合( Collection )
2) 行( Row )
3) 引用 (Ref)
集合: 使用 MULTISET() 或者花括号 ——{} 来创建,例如: MULTISET("Lenovo", "HP", "ASUS") ,这等价于: {"Lenovo", "HP", "ASUS"} 。
可以用集合返回一系列的值,例如: SELECT BRAND FROM MULTISET("Lenovo", "HP", "ASUS") AS BRAND
这将返回三个 String 类型的行,每行一个品牌名称。
再如: MAX(MULTISET("Lenovo", "HP", "ASUS")) ,将会根据字母进行排序后,返回值最大的字符串 ——Lenovo 。
行: 行的概念比较简单,它使用关键字 ROW 构建,形成一个行对象。例如: ROW("Lenovo" as Brand, "T61" as Type) ,将会返回一个由 Brand 和 Type 列构成的行对象。
将行和集合稍作组合,便可以返回一个多行的集合: MULTISET(ROW("Lenovo" as Brand, "T61" as Type),ROW("HP" as Brand, "V3911TU" as Type))
注:列名称取的是第一个行对象的别名,下面这个语句,跟上面这一语句是等效的: MULTISET(ROW("Lenovo" as Brand, "T61" as Type),ROW("HP" as aaa, "V3911TU" as bbb))
引用: 相当于数据库中的指针。有两种方式来创建引用。
第一种,使用 REF 关键字。
select value c from NorthwindEntities . Customers as c
将返回所有的 Customers 的对象集合。
那么,通过添加关键字 REF :
select ref (c) from NorthwindEntities . Customers as c
将返回一个引用集合:
第二种,使用 CREATEREF 关键字。例如:
CREATEREF ( NorthwindEntities . Employees , ROW ( 1 ));
其中使用 ROW 关 键字,传入需要引用的行的主键的值。那么,我们有什么必要去使用引用?我们可以把引用看成是一种获取数据的轻型的解决方案,我们记录了在哪儿去获取值,但 是并没有真正的数据获取出来,这样,不到必要时候,就没有必要在应用程序和数据库之间传递大量的数据。在上面那条语句中,我们并没有取出所有的值。而一旦 必要,只要访问一下这个实体集的任意一个属性,或者使用 DEREF 表达式,即可获取数据。
例如: CREATEREF ( NorthwindEntities . Employees , ROW ( 2 )). Address
如果要获取整个行的,则使用 DEREF : DEREF ( CREATEREF ( NorthwindEntities . Employees , ROW ( 2)))
其实,如果我们改一个形式:
DEREF ( CREATEREF ( NorthwindEntities . Employees , ROW (@ EmployeeID )))
在实际应用中,我们经常要根据主键,来获取一个实体,这时,把传入的主键参数化,返回整个实体。这也可以算是一个典型应用了。
注释
Entity SQL 查询可以包含注释。注释行以两个短划线 (--) 开头。
例如: " select ref (c) from NorthwindEntities . Customers as c -- this a comment "
另 ESQL : 内部存在一些关键字: NULL 、 BOOLEAN 、 INTEGER 、 DECIMAL 、 FLOAT 、 DOUBLE 、 STRING 、 DATETIME 、 TIME 、 DATETIMEOFFSET 、 BINARY 、 GUID
这些类型几乎都是可以通用于各种数据库的。 Entity SQL 支持的字符集: UTF-16
发表评论
-
C# LINQ to SQL
2017-07-28 12:48 6751、Concat(连接不同的集合不会自动过滤相同项。会延迟计 ... -
基于 EntityFramework 的数据库主从读写分离服务插件
2017-03-08 15:06 11711. 版本信息和源码 1.1 版本信息 v1.01 be ... -
EF6(CodeFirst)+MySql开发
2017-01-06 14:08 1563如题,本文是使用EntityFramework6框架的感悟( ... -
<Entity Framework> - 直接执行数据库命令
2016-08-10 15:00 1550使用 EF 4.1 或者更新版本, 你可以直接执行任何数据库 ... -
EntityFramework执行SQL语句
2016-08-10 14:58 1044在EF中执行Sql语句。 Insert Code: ... -
EntityFramework 执行SQL语句进行参数化查询代码示例
2016-08-10 14:59 1921在我们用EntityFramework时,一般情况下我们是要 ... -
Entity Framework 学习中级篇—使EF支持Oracle9i
2011-07-05 16:57 3008从Code MSDN上下载下来的EFOracleProvide ... -
Entity Framework 学习中级篇—EF支持复杂类型的实现
2011-07-05 16:56 12706http://www.cnblogs.com/xray20 ... -
Entity Framework 学习初级篇--ObjectContext、ObjectQuery、ObjectStateEntry、ObjectStateMa
2011-07-05 16:55 6945本节,简单的介绍EF中的 ObjectContext ... -
Entity Framework 学习初级篇--EF基本概况
2011-07-05 16:53 3699自从Entity Framework(EF ... -
Entity Framework 学习高级篇—改善EF代码的方法
2011-07-05 16:39 10157本节,我们将介绍一些改善EF代码的相关方法,如NoTrac ... -
Entity Framework 学习总结之十一:POCO
2011-06-30 11:24 12098POCO Entity Framework ... -
Entity Framework 学习总结之十:加载相关对象
2011-06-30 11:23 3814加载相关对象 实体类型可以定义在数据模型中表 ... -
Entity Framework 学习总结之九:LinqToEntities
2011-06-30 11:22 1648介绍 LINQ to Entities ... -
Entity Framework 学习总结之八:EntitySQL 复杂查询及函数
2011-06-30 11:21 2967复杂查询及函数 外键 Entity ... -
Entity Framework 学习总结之七:EntitySQL 基本查询
2011-06-30 11:20 2121Entity SQL 基本查询 SW ... -
Entity Framework 学习总结之五:EntityClient
2011-06-30 11:18 3522System.Data.EntityClient E ... -
Entity Framework 学习总结之四:对象服务介绍使用
2011-06-30 11:18 3090System.Data.Objects (System ...
相关推荐
为了适应不同应用场景,Entity Framework Core提供了多个.NET实现的支持,并详细描述了不同的数据库提供程序(如Microsoft SQL Server、SQLite、内存优化表InMemory),以及如何编写自定义的数据库提供程序。...
Entity Framework(简称EF)是一个微软的ORM(对象关系映射)框架,它允许开发人员通过面向对象的方式来操作数据库,而不是直接使用SQL语句。EF是作为.NET Framework的一部分提供的,并且在.NET4.0版本中得到了微软...
### ADO.NET Entity Framework 教程知识点概览 #### 一、Entity Framework 概述 - **背景**:Entity Framework (EF) 是 Microsoft 推出的一款 ORM (Object Relational Mapping) 工具,旨在简化数据访问层的开发,...
EntityFramework(EF)是Microsoft开发的一个对象关系映射(ORM)框架,用于.NET应用程序,它允许开发者使用.NET语言(如C#)与数据库进行交互,而无需编写SQL语句。这个"EntityFramework学习快速入门案例"旨在帮助...
1. EntityFrameworkCore(EFCore)与EntityFramework6(EF6)的对比: - EFCore是轻量级、可扩展和跨平台的版本,专注于支持.NET Core项目。 - EF6是一个经过长时间测试的数据访问技术,功能丰富且稳定性较高。 -...
**Entity Framework 4.0 Recipes** 是一本非常实用的开发参考书,不仅为初学者提供了易于理解的入门指南,也为经验丰富的开发者提供了深入的技术细节和最佳实践。通过本书的学习,读者将能够充分利用 EF 4.0 的强大...
Entity Framework (EF) Core是微软开发的一个轻量级、可扩展且开源的对象关系映射(ORM)工具,专为.NET开发者设计,简化了数据库访问。它允许开发人员使用.NET对象来处理数据库,避免了大量的数据访问代码。EF Core...
### Entity Framework 入门事例解析 #### 一、Entity Framework 概览 **Entity Framework**(EF)是Microsoft提供的一款对象关系映射(ORM)框架,用于.NET平台上的应用程序访问数据库。它允许开发者以面向对象的方式...
在ADO.NET Entity Framework初学入门和ADO.NET Entity Framework 学习初级篇文档中,你可能会找到关于如何设置EF项目、创建实体模型、执行基本查询、处理关系、事务以及性能优化等方面的内容。这些文档将帮助你逐步...
EntityFrameworkCore引导工具包(EFBK)是用于使用.NET EntityFrameworkCore的快速入门数据库连接库。 特征: 继承自EntityFrameworkCore触发器以启用条目更新通知。 支持多种数据库,例如MySql,SQL Server,...
【EntityFramework入门1】 Entity Framework (EF) 是微软开发的一款对象关系映射(ORM)框架,用于.NET应用程序,使得开发者可以使用C#等面向对象的编程语言与数据库进行交互,而无需关注底层的SQL语句。它将数据库...
迁移是EntityFramework中一个重要的部分,文档详细介绍了如何管理和应用迁移,包括在团队环境中的协作、使用Migrate.exe工具,以及自定义迁移历史记录和操作。此外,还讨论了反向工程(基架)的方法,例如使用EDMX...
本教程旨在为初学者提供一个全面了解 Entity Framework 的入门指南,涵盖了从基础知识到高级主题的内容。通过学习本教程,读者将能够熟练地使用 Entity Framework 进行高效的数据访问操作,并掌握相关的最佳实践和...
本教程是一个简单的ASP.NET EF示例,非常适合初学者入门学习。 首先,我们来了解ASP.NET。ASP.NET是.NET框架的一部分,它是一个用于构建Web应用的服务器端技术,提供了丰富的功能和工具,支持多种Web应用模型,如...
- **方法使用**:除了LINQ和EntitySQL之外,还可以使用ObjectQuery和ObjectSet等方法进行数据查询。 - **示例演示**:通过具体示例说明不同方法的应用场景。 **3.6 最短的查询** - **优化技巧**:介绍如何通过减少...
通过学习和实践这个入门示例向导,你将能够熟练地使用Entity Framework进行数据操作,无论是在简单的单表查询还是复杂的多表关联场景中。在实际的项目开发中,这将大大提高你的开发效率和代码质量。