System.Data.EntityClient 命名空间是 实体框架的 .NET Framework 数据提供程序。EntityClient 提供程序使用存储特定的 ADO.NET 数据提供程序类和映射元数据与实体数据模型进行交互。EntityClient 首先将对概念性实体执行的操作转换为对物理数据源执行的操作。然后再将物理数据源返回的结果集转换为概念性实体。

EntityClient下的类有以下几个:
EntityConnection
EntityCommand
EntityConnectionStringBuilder
EntityParameter
EntityDataReader
EntityParameterCollection
EntityProviderFactory
EntityTransaction

从类的名字上看,我们就知道它们的作用是什么了。在此,就不再一一解释了。

public static void EntityADO()
{
// 定义连接字符串 myitEntities 是App.config里的连接字符串名
string connStr = "name = myitEntities";
using (EntityConnection conn = new EntityConnection(connStr))
{
string sql = "select value c from myitEntities.Student as c order by c.StudentID skip @start limit @end";
conn.Open();
EntityCommand cmd = new EntityCommand(sql, conn);
//EntityParameter p1 = new EntityParameter("start", DbType.Int32);
//p1.Value = 2;
//EntityParameter p2 = new EntityParameter("end", DbType.Int32);
//p2.Value = 3;
//cmd.Parameters.Add(p1);
//cmd.Parameters.Add(p2); //EntityParameter[] par = {
// new EntityParameter("start", DbType.Int32),
// new EntityParameter("end", DbType.Int32)
// };
//par[0].Value = 2;
//par[1].Value = 3;
//cmd.Parameters.AddRange(par); cmd.Parameters.AddWithValue("start", );
cmd.Parameters.AddWithValue("end", ); EntityDataReader reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess);
while(reader.Read())
{
Console.WriteLine(reader["StudentID"]+"----"+reader.GetString(reader.GetOrdinal("StudentName")));
} Console.WriteLine(cmd.ToTraceString());
}
}

上述代码中,需要注意的是EntityConnection的构造方法。其中,连接字符串写法有多很,如下:

//写法1:
string con ="name = NorthwindEntities" ; //其中的”NorthwindEntities”是配置文件中的连接字符串名称 //写法2:
string con = System.Configuration.ConfigurationManager.ConnectionStrings["NorthwindEntities"].ConnectionString; //其中的”NorthwindEntities”是配置文件中的连接字符串名称 //写法3:
string con = @" metadata=res://*/NorthWind.csdl|res://*/NorthWind.ssdl|res://*/NorthWind.msl;provider=System.Data.SqlClient;provider connection string='Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=True'"; //其中的这些字符串是配置文件中的连接字符串的值 //写法4:
NorthwindEntities edm = new NorthwindEntities();
string con = edm.Connection.ConnectionString;

上述写法中,基于写法简单、方便我比较推荐使用第1种或者第2种写法。

> EntityCommand
它具有的方法有:ExecuteDbDataReader、 ExecuteNonQuery 、 ExecuteReader 、 ExecuteScalar等

> EntityConnectionStringBuilder
实例代码:

EntityConnectionStringBuilder esb = new EntityConnectionStringBuilder();
esb.Provider = "System.Data.SqlClient";
esb.Metadata = @"res://*/NorthWind.csdl|res://*/NorthWind.ssdl|res://*/NorthWind.msl";
esb.ProviderConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=True";
EntityConnection econn = new EntityConnection(esb.ConnectionString)//创建连接

> EntityParameter

其中,参数是以@符号前缀的,EntityParameter实体参数类,除了可以直接构造出实例来。为实体命令对象添加参数,我们还可以直接调用Parameters.AddWithValue方法。如下代码:

     ecmd.Parameters.AddWithValue("start", );
ecmd.Parameters.AddWithValue("end", );

我比较喜欢用上面的代码,简单、方便。

需要注意的是:CommandBehavior.SequentialAccess;这个地方。不同的枚举项,对查询会有不同影响。枚举如下:
Default 此查询可能返回多个结果集。在功能上等效于调用 ExecuteReader()。
SingleResult 查询返回一个结果集。
SchemaOnly 查询仅返回列信息。
KeyInfo 此查询返回列和主键信息。
SingleRow 查询应返回一行。
SequentialAccess 提供一种方法,以便 DataReader 处理包含带有大二进制值的列的行。
CloseConnection 在执行该命令时,如果关闭关联的 DataReader 对象,则关联的 Connection 对象也将关闭。

需要说明的是,如果使用SequentialAccess则需按顺序访问列,否则将抛异常。如下代码,将会抛异常:

while (ereader.Read())
{
//异常信息:从列序列号“1”开始读取的尝试无效。通过CommandBehavior.SequentialAccess,只能从列序列号“5”或更大值处开始读取
Console.WriteLine("{0},{1},{2},{3},{4}", ereader[], ereader[], ereader[], ereader[], ereader[]);
}

> EntityTransaction:
事务类。目前由于ESQL仅提供查询的命令,没有提供对Insert、Update、Delete等的支持。所以,我觉得目前这个类基本没有用,(不可能我做查询还使用事务吧!)。
从上述简单的介绍,我们可以看到,EntityClient和SqlClient下的类基本上是一致的。所以很容易掌握。其他就不多说了

EntityClient 介绍的更多相关文章

  1. Entity Framework 学习初级篇--EntityClient(转)

    摘自:http://www.cnblogs.com/xray2005/archive/2009/05/13/1456374.html System.Data.EntityClient 命名空间是 实体 ...

  2. 【EF 4】ORM框架及其流行产品之一EF介绍

    导读:跳进了多租户切换数据库的坑,那么就继续走下去吧.在我们的项目中,是运用EF实现对数据库的操作,那么EF其实是.NET系统中,基于ORM框架的一个产品实现.在java那边,则有Hibernate和 ...

  3. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  4. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  5. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  6. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  7. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  8. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

  9. HTML 事件(一) 事件的介绍

    本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...

随机推荐

  1. 图的强连通&双连通

    http://www.cnblogs.com/wenruo/p/4989425.html 强连通 强连通是指一个有向图中任意两点v1.v2间存在v1到v2的路径及v2到v1的路径. dfs遍历一个图, ...

  2. A Tour of Go If with a short statement

    Like for, the if statement can start with a short statement to execute before the condition. Variabl ...

  3. 非常实用的Android Studio快捷键

    One—打印Log 生成tag: logt 打印log: logm logd loge Two—代码提示 Ctrl + Alt + Space Three—代码移动 选中代码: Ctrl + w 向 ...

  4. iOS Xcode8的适配

    1.打开应用后打印了很多的log信息 解决方法: Xcode8里边 Edit Scheme... -> Run -> Arguments, 在Environment Variables里边 ...

  5. Redis集群方案应该怎么做

    方案1:Redis官方集群方案 Redis Cluster Redis Cluster是一种服务器sharding分片技术.Redis Cluster集群如何搭建请参考我的另一篇博文:http://w ...

  6. 后台JOB&EVENT JOB

    SM35执行一个后台作业后,想及时停止, 运行SM37后,点击ctr + F1停止活动的作业,系统根本就没反应. 解决方法: 第一步:SM50, 找到,Ty.列为BGD的(Background),然后 ...

  7. 【DB】HBase的基本概念

    一 Hbase是个啥东东?  在说Hase是个啥家伙之前,首先我们来看看两个概念.面向行存储和面向列存储.面向行存储.我相信大伙儿应该都清楚,我们熟悉的RDBMS就是此种类型的.面向行存储的数据库主要 ...

  8. careercup-树与图 4.1

    4.1 实现一个函数,检查二叉树是否平衡.在这个问题中,平衡树的定义如下:任意一个结点,其两颗子树的高度差不超过1. C++实现代码: #include<iostream> #includ ...

  9. “:Choose a destination with a supported architecture in order to run on this device.”

    我在编译从GitHub上clone下来的<TweeJump>时,出现如下错误:":Choose a destination with a supported architectu ...

  10. wpf 计算器布局练习

    先看一下windows自带计算机的布局: 大概布局能看出,有菜单栏(menu),有显示框(textbox),然后剩下的6行5列的布局 先看下代码: <StackPanel> <Gri ...