合肥 中网站,新出的网络游戏排行榜,内容分享网站设计,定制高端网站的公司EntityClient 实体框架#xff08;Entity Framework#xff09;在ADO.NET 3.5 提供程序的基础上引入新的 ADO.NET 提供程序 EntityClient。Entity-Client 看上去与之前使用的 ADO.NET 提供程序非常类似#xff0c;它将提供第一个抽象#xff0c;可允许开发人员使用标准的 C…EntityClient 实体框架Entity Framework在ADO.NET 3.5 提供程序的基础上引入新的 ADO.NET 提供程序 EntityClient。Entity-Client 看上去与之前使用的 ADO.NET 提供程序非常类似它将提供第一个抽象可允许开发人员使用标准的 Connection、Command 和 DataReader 对象依照 EDM 执行查询。它还会将映射域模型所需的客户端视图引擎根据 EDM 定义的添加到底层关系数据库架构。必要时EntityClient 可借助 ESQL 查询字符串让开发人员以行和列的形式处理实体而不必生成类来表示概念架构。 1. EntityCommand 查询返回实体类型 Entity SQL也可以通过EntityClient 来执行尽管代码比较啰嗦但是在某些情况下也是优点。 1) 首先创建EntityConnection重用Northwind data context 的连接字符串并打开连接。 2) 创建 EntityCommand 对象并传入Entity SQL语句和数据库连接对象。 3) 创建DbDataReader对象并循环读取返回的结果集。 NorthwindEntities context new NorthwindEntities(); EntityConnection conn new EntityConnection(context.Connection.ConnectionString); conn.Open(); var sql SELECT VALUE emp FROM NorthwindEntities.Employees AS emp; EntityCommand cmd new EntityCommand(sql, conn); DbDataReader reader cmd.ExecuteReader(CommandBehavior.SequentialAccess); while (reader.Read()) { Console.WriteLine({0} {1} {2} {3}, reader[EmployeeID], reader[LastName], reader[FirstName], reader[Country]); } 当时使用SequentialAccess的DbDataReader时需要小心访问数据务必有序的读取。 如你改变成员的顺序将抛出InvalidOperationException 异常 - Attempt to read from column ordinal 0 is not valid. With CommandBehavior.SequentialAccess, you may only read from column ordinal 2 or greater. Console.WriteLine({0} {1} {2} {3}, reader[LastName], reader[EmployeeID], reader[FirstName], reader[Country]); 2. EntityCommand 查询返回匿名类型 采用相同的技术可以实现返回匿名类型。 EntityConnection conn new EntityConnection(context.Connection.ConnectionString); conn.Open(); var sql SELECT emp.LastName, emp.FirstName FROM NorthwindEntities.Employees AS emp; EntityCommand cmd new EntityCommand(sql, conn); DbDataReader reader cmd.ExecuteReader(CommandBehavior.SequentialAccess); while (reader.Read()) { Console.WriteLine({0} {1}, reader[LastName], reader[FirstName]); } 3. EntityCommand 带参数查询 EntityCommand 带参数也比较容易在Entity SQL字符串中参数名称以作为前缀接着创建EntityParameter对象并增加到EntityCommand 的Parameters集合内。 EntityConnection conn new EntityConnection(context.Connection.ConnectionString); conn.Open(); var sql SELECT VALUE emp FROM NorthwindEntities.Employees AS emp WHERE emp.Country country; EntityCommand cmd new EntityCommand(sql, conn); EntityParameter param new EntityParameter(country, DbType.String); param.Value USA; cmd.Parameters.Add(param); DbDataReader reader cmd.ExecuteReader(CommandBehavior.SequentialAccess); while (reader.Read()) { Console.WriteLine({0} {1} {2} {3}, reader[EmployeeID], reader[LastName], reader[FirstName], reader[Country]); } LINQ to Entities LINQ是在.NET v3.5 引入的新技术。相对于前面的Entity SQL而言我更偏爱LINQ to entities。LINQ查询虽然有一些局限但是LINQ更容易、更自然此外还支持强类型因此智能提示能帮助编写LINQ查询脚本。 LINQ to Entities 与LINQ to Objects和LINQ to SQL 基本一样因此下面简单演示2个基本的LINQ to Entities的查询。 1. LINQ 带参数查询 NorthwindEntities context new NorthwindEntities(); string country USA; var query from e in context.Employees where e.Country country select e; foreach (var emp in query) Console.WriteLine({0} {1} {2} {3}, emp.EmployeeID, emp.FirstName, emp.LastName, emp.Country); 2. LINQ 查询返回匿名类型 NorthwindEntities context new NorthwindEntities(); var query from e in context.Employees select new { e.LastName, e.FirstName }; foreach (var emp in query) Console.WriteLine({0} {1}, emp.LastName, emp.FirstName); 这篇文章对Entity Data Model 和Entity Framework 提供了各种查询技术进行了简单的介绍希望对你有帮助。下一篇文章将介绍更高级的 Entity SQL 查询技术、查看SQL 语句、eager loading、变更跟踪、并发… 等等。 推荐Entity Framework 相关文章 1. Entity Framework – Update Model From Database, Part 1 http://blog.entlib.com/EntLib/archive/2008/10/19/entity-framework-update-model-from-database-part-1.aspx 2. Entity Framework – Update Model From Database, Part 2 http://blog.entlib.com/EntLib/archive/2008/10/19/entity-framework-update-model-from-database-part-2.aspx 3. Entity Framework 架构简介 http://blog.entlib.com/EntLib/archive/2008/10/19/entity-framework-architecture.aspx 4. 比较LINQ to SQL Diagram 和Entity Data Model http://blog.entlib.com/EntLib/archive/2008/10/19/linq-to-sql-diagram-entity-data-model.aspx 英文链接 1. ADO.NET Entity Framework LINQ to Entities, http://www.scip.be/index.php?PageArticlesNET12 转载于:https://www.cnblogs.com/l1b2q31/articles/1715424.html