LINQ to Entities
|
一种 LINQ 技术,使开发人员可以使用 LINQ 表达式和 LINQ 标准查询运算符,针对实体数据模型 (EDM) 对象上下文创建灵活的强类型化查询。
|
ESQL
|
Entity SQL
一种与 SQL 类似的、独立于存储的语言。该语言直接操作概念实体架构,并支持实体数据模型功能,如继承和关系。
|
EF
|
实体框架 ADO.NET Entity Framework
一套支持面向数据的软件应用程序开发的技术,可让开发人员使用映射到数据源中的逻辑架构的概念模型。
|
EDM
|
实体数据模型 (Entity Data Model)
一个数据模型,用于将应用程序数据定义为公共语言运行时类型和存储结构可以映射到的实体和关系集。
|
Entity
|
实体
ADO.NET Entity Framework 应用程序域中的一个概念,数据类型在该域中定义
|
csdl
|
概念架构定义语言 Conceptual schema definition language
一种基于 XML 的语言,可用于定义概念模型的实体类型、关联、实体容器、实体集和关联集
|
ssdl
|
存储架构定义语言 Store schema definition language
一种基于 XML 的语言,用于定义存储模型的实体类型、关联、实体容器、实体集和关联集,经常对应于数据库架构。
|
msl
|
映射规范语言 Mapping specification language
一种基于 XML 的语言,可用于将概念模型中定义的项映射到存储模型中的项
|
ADO.NET Entity Framework
架构
ADO.NET Entity Framework分Storage Provider ,Mapping Layer ,Object Services,LINQ to Entities 四层。
Storage Provider
|
负责直接和数据源通讯,支持的数据库 Sql Server
|
Mapping Layer
|
数据库概念层和逻辑层的映射。
通过 EDM 模型和 mapping provider ,应用程序将构建在更高层次的 EDM 模型抽象层次上。同时,在应用程序中将不再使用本地数据库的查询语言比如( T-sql), 取而代之的将是 Entity SQL 。
|
Object Services
|
Object Services 的目标是消除数据和应用程序代码风格的不匹配
ADO.NET 允许将查询结果呈现为行和列记录,同时也可以呈现为 .NET 对象。
该层还包括了更多被 O/R mapping 框架支持的高级的服务,比如身份认证,跟踪对象状态变化,并行性检查以及处理更新。
|
LINQ to Entities
|
将 Entity Framework 与 LINQ 项目集成,以提供面向对象编程语言适合自己特点的查询功能。
LINQ to Entities 这一层依赖于 object services 和 mapping layer 这两层。
|
说明
ADO.NET Entity Framework 的数据访问方式与ADO.NET 有类似之处
ADO.NET
|
ADO.NET Entity Framework
|
SqlConnection
|
EntityConnection
|
SqlCommand
|
EntityCommand
|
SqlDataReader.
|
EntityDataReader
|
SqlDataAdapter
|
ObjectContext
|
DataSet
|
ObjectQuery<T>
|
Entity
|
csdl,ssdl,msl
|
注意:ADO.NET与 ADO.NET Entity Framework是不同的技术,这个对比只是一个帮助理解的比效
EntityConnection
EntityCommand
通过EntityDataReader 方式的数据访问
string econString = @"
metadata=res://*/myModel.csdl
|res://*/myModel.ssdl
|res://*/myModel.msl
;
provider=System.Data.SqlClient;
provider connection string=""
Data Source=.;
Initial Catalog=LingTestDB;
Integrated Security=True;
MultipleActiveResultSets=True;
""
" ;
EntityConnection econ = new EntityConnection ();
econ.ConnectionString = econString;
EntityCommand ecmd = new EntityCommand ();
ecmd.CommandType = CommandType .Text;
ecmd.Connection = econ;
ecmd.CommandText = "select it.ItemID,it.ItemMatter from myContext.DBItem as it" ; //esql
//或
// cmd.CommandText = "select value it from myContext.DBItem as it"; //esql
// to SQL : "select * from DBItem"
econ.Open();
EntityDataReader eReader = ecmd.ExecuteReader(CommandBehavior .SequentialAccess);
while (eReader.Read())
{
Console .WriteLine("{0},{1}" , eReader[0].ToString(), eReader[1].ToString());
}
|
通过ObjectContext返回ObjectQuery<T> 方式的数据访问
ObjectContext提供了管理数据的功能
string econString = @"
metadata=res://*/myModel.csdl
|res://*/myModel.ssdl
|res://*/myModel.msl
;
provider=System.Data.SqlClient;
provider connection string=""
Data Source=.;
Initial Catalog=LingTestDB;
Integrated Security=True;
MultipleActiveResultSets=True;
""
" ;
EntityConnection econ = new EntityConnection (econString);
ObjectContext context = new ObjectContext (econ);
context.DefaultContainerName = "myContext" ;
ObjectQuery <DBItem > queryTab = context.CreateQuery<DBItem >("DBItem" );
foreach (var r in queryTab)
{
System.Console .WriteLine("{0},{1}" , r.ItemID, r.ItemMatter);
}
|
string econString = @"
metadata=res://*/myModel.csdl
|res://*/myModel.ssdl
|res://*/myModel.msl
;
provider=System.Data.SqlClient;
provider connection string=""
Data Source=.;
Initial Catalog=LingTestDB;
Integrated Security=True;
MultipleActiveResultSets=True;
""
" ;
EntityConnection econ = new EntityConnection (econString);
ObjectContext context = new ObjectContext (econ);
ObjectQuery <DBItem > queryTab = context.CreateQuery<DBItem >("select value it from myContext.DBItem as it where it.ItemID='a'" );
foreach (var r in queryTab)
{
System.Console .WriteLine("{0},{1}" ,r.ItemID,r.ItemMatter);
}
|
分享到:
相关推荐
Entity Framework完整版教程,从初级到中级,再到高级,循序渐进。
学习ADO.NET Entity Framework的好文档。
微软ado.net最新技术,实体框架(entity framework)扩展
数据ADO.NET sql、LINQ to sql、ADO.NET Entity Framework(EF)数据库连接性能比较,主要比较了插入与读取的时间,读取里可以进行模糊检索
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,该插件为4.1版本
ADO.NET Entity Framework使用封装示范代码,这个中封装可以提高开发效率
ADO.NET Entityframework dbcontext a
ADO.NET Entity Framework概述PPT讲解,已经学习,好东西、分享
最近ado.net entity framework 电子书,入门学习的最佳书籍
ADO.NET Entity Framework 增删改查语句句法
ADO.NET EntityFramework入门教程,分别讲解Storage Provider ,Mapping Layer ,Object Services,LINQ to Entities 四层如何设计使用
利用ADO.net entity framework+Linq实现的学习源代码---利用ADO.net entity framework+Linq实现的学习源代码
ADO.NET Entity Framework 入门示例向导
ADO.NET EntityFramework 实体完整版教程,从初级到中级,再到高级,循序渐进。
利用ado.net entity framework快速开发信息管理---利用ado.net entity framework快速开发信息管理
中新增的数据访问层设计技术ADO.NET Entity Framework。ADO.NET的LINQ to Entity部分以LINQ 为基础,为了完整性本文档首先介绍LINQ技术 Entity Framework 教程 目录 预备知识 2 LINQ技术 2 LINQ...
ADO.NET Entity Framework Domain-Driven
//作者:黄颢鹏,Email:anh3000@qq.com,转载请注作者名 ADO.NET Entity Framework 的分页类代码.rar
WPF+ADO.net Entity Framework 抽奖程序源码