EntityFramework学习初级篇3--LINQTOEntities2011-01-28.docVIP

  • 2
  • 0
  • 约5.85千字
  • 约 5页
  • 2018-07-01 发布于河南
  • 举报

EntityFramework学习初级篇3--LINQTOEntities2011-01-28.doc

EntityFramework学习初级篇3--LINQTOEntities2011-01-28

LINQ?技术(即?LINQ to Entities)使开发人员能够通过使用?LINQ?表达式和?LINQ?标准查询运算符,直接从开发环境中针对 实体框架对象上下文创建灵活的强类型查询。LINQ to Entities?查询使用对象服务基础结构。ObjectContext?类是作为?CLR?对象与 实体数据模型 进行交互的主要类。开发人员通过?ObjectContext?构造泛型?ObjectQuery?实例。ObjectQuery?泛型类表示一个查询,此查询返回一个由类型化实体组成的实例或集合。返回的实体对象可供更新并位于对象上下文中。以下是创建和执行?LINQ to Entities?查询的过程: 1.?????从?ObjectContext?构造?ObjectQuery?实例。 2.?????通过使用?ObjectQuery?实例在?C#?或?Visual Basic?中编写?LINQ to Entities?查询。 3.?????将?LINQ?标准查询运算符和表达式将转换为命令目录树。 4.?????对数据源执行命令目录树表示形式的查询。执行过程中在数据源上引发的任何异常都将直接向上传递到客户端。 5.?????将查询结果返回到客户端。 一、Linq To Entities简单查询 下面将介绍简单的Linq To Entities查询,相关的查询语法可以使用基于表达式或基于方法的语法。本节使用的TestDriver.Net配合Nunit2.4进行测试。 1,??投影 代码如下: using?System; using?System.Collections.Generic; using?System.Linq; using?System.Data.Objects; using?NUnit.Framework; namespace?NorthWindModel { ????[TestFixture] ????public?class?TestEFModel ????{ ????????[Test] ????????public?void?Select() ????????{ ????????????using?(var?edm =?new?NorthwindEntities()) ????????????{ ????????????????//基于表达式的查询语法 ????????????????ObjectQueryCustomers customers = edm.Customers; ????????????????IQueryableCustomers cust1 =?from?c?in?customers ??????????????????????????????????????????????select?c; ????????????????Assert.Greater(cust1.Count(), 0); ????????????????//使用ObjectQuery类的ToTraceString()方法显示查询SQL语句 ????????????????Console.WriteLine(customers.ToTraceString()); ? ? ????????????} ????????} ????} } 输出: SELECT [Extent1].[CustomerID] AS [CustomerID], [Extent1].[CompanyName] AS [CompanyName], [Extent1].[ContactName] AS [ContactName], [Extent1].[ContactTitle] AS [ContactTitle], [Extent1].[Address] AS [Address], [Extent1].[City] AS [City], [Extent1].[Region] AS [Region], [Extent1].[PostalCode] AS [PostalCode], [Extent1].[Country] AS [Country], [Extent1].[Phone] AS [Phone], [Extent1].[Fax] AS [Fax] FROM [dbo].[Customers] AS [Extent1] ? 1 passed, 0 failed, 0 skipped, took 11.00 seconds (NUnit 2.4). 在上面的输出内容中,可以看到使用了ToTraceString()方法来输出具体的SQL语句。同时Nunit也输出相关的测试情况,请注意查询所花费的时间,以便我们进行查询速度的分析比较。 2,??条件限制 u

文档评论(0)

1亿VIP精品文档

相关文档