- 浏览: 1021786 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (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
介绍
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) 将查询结果返回到客户端。
查询使用
相关的查询语法可以使用基于表达式或基于方法的语法。
1 、投影
代码片断:
using (var edm = new NorthwindEntities ())
{
ObjectQuery <Orders > orders = edm.Orders;
IQueryable <Orders > result = from order in orders
select order;
foreach (Orders o in result)
{
Console .WriteLine("{0},{1}" , o.OrderID, o.OrderDate);
}
Console .WriteLine(orders.ToTraceString());
}
2 、条件限制
代码片断:
DateTime orderDate =new DateTime (1996,7,9);
// 第一种方法在表达式中进行Where
//ObjectQuery<Orders> orders = edm.Orders;
//IQueryable<Orders> result = from order in orders
//where order.OrderDate <= orderDate
//select order ;
// 可以直接在edm.Orders对象上使用Where扩展方法
var orders = edm.Orders.Where(order => order.OrderDate <= orderDate);
IQueryable <Orders > result = from order in orders
select order;
foreach (Orders o in result)
{
Console .WriteLine("{0},{1}" , o.OrderID, o.OrderDate);
}
//Console.WriteLine(orders.ToTraceString());
// 对比生成的SQL语句,此种在本质上筛选,而前种方法是在内存中筛选。
Console .WriteLine(((ObjectQuery )orders).ToTraceString());
结果:
3 、排序和分页
在使用 Skip 和 Take 方法实现分页时,必须先对数据进行排序,否则将会抛异常。
代码片断:
DateTime orderDate = new DateTime (1996, 7, 9);
// 第一种方法在表达式中进行分页
ObjectQuery <Orders > orders = edm.Orders;
IQueryable <Orders > result = (from order in orders
where order.OrderDate > orderDate
orderby order.OrderID
select order).Skip(0).Take(2);
// 可以直接在edm.Orders对象上使用Where、OrderBy、Skip、Take扩展方法。
//var orders = edm.Orders.Where(order => order.OrderDate <= orderDate).OrderBy(order => order.OrderID).Skip(0).Take(2);
// 可以直接foreach (Orders o in orders)
foreach (Orders o in result)
{
Console .WriteLine("{0},{1}" , o.OrderID, o.OrderDate);
}
Console .WriteLine(orders.ToTraceString());
// 对比生成的SQL语句,此种在本质上筛选,而前种方法是在内存中筛选。
//Console.WriteLine(((ObjectQuery)orders).ToTraceString());
第一种方法输出结果:
10253,1996/7/10 0:00:00
10254,1996/7/11 0:00:00
SELECT
[Extent1].[OrderID] AS [OrderID],
[Extent1].[CustomerID] AS [CustomerID],
[Extent1].[EmployeeID] AS [EmployeeID],
[Extent1].[OrderDate] AS [OrderDate],
[Extent1].[RequiredDate] AS [RequiredDate],
[Extent1].[ShippedDate] AS [ShippedDate],
[Extent1].[ShipVia] AS [ShipVia],
[Extent1].[Freight] AS [Freight],
[Extent1].[ShipName] AS [ShipName],
[Extent1].[ShipAddress] AS [ShipAddress],
[Extent1].[ShipCity] AS [ShipCity],
[Extent1].[ShipRegion] AS [ShipRegion],
[Extent1].[ShipPostalCode] AS [ShipPostalCode],
[Extent1].[ShipCountry] AS [ShipCountry]
FROM [dbo].[Orders] AS [Extent1]
第二种方法输出结果:
10248,1996/7/4 0:00:00
10249,1996/7/5 0:00:00
SELECT TOP (2)
[Project1].[OrderID] AS [OrderID],
[Project1].[CustomerID] AS [CustomerID],
[Project1].[EmployeeID] AS [EmployeeID],
[Project1].[OrderDate] AS [OrderDate],
[Project1].[RequiredDate] AS [RequiredDate],
[Project1].[ShippedDate] AS [ShippedDate],
[Project1].[ShipVia] AS [ShipVia],
[Project1].[Freight] AS [Freight],
[Project1].[ShipName] AS [ShipName],
[Project1].[ShipAddress] AS [ShipAddress],
[Project1].[ShipCity] AS [ShipCity],
[Project1].[ShipRegion] AS [ShipRegion],
[Project1].[ShipPostalCode] AS [ShipPostalCode],
[Project1].[ShipCountry] AS [ShipCountry]
FROM ( SELECT [Project1].[OrderID] AS [OrderID], [Project1].[CustomerID] AS [Cus
tomerID], [Project1].[EmployeeID] AS [EmployeeID], [Project1].[OrderDate] AS [Or
derDate], [Project1].[RequiredDate] AS [RequiredDate], [Project1].[ShippedDate]
AS [ShippedDate], [Project1].[ShipVia] AS [ShipVia], [Project1].[Freight] AS [Fr
eight], [Project1].[ShipName] AS [ShipName], [Project1].[ShipAddress] AS [ShipAd
dress], [Project1].[ShipCity] AS [ShipCity], [Project1].[ShipRegion] AS [ShipReg
ion], [Project1].[ShipPostalCode] AS [ShipPostalCode], [Project1].[ShipCountry]
AS [ShipCountry], row_number() OVER (ORDER BY [Project1].[OrderID] ASC) AS [row_
number]
FROM ( SELECT
[Extent1].[OrderID] AS [OrderID],
[Extent1].[CustomerID] AS [CustomerID],
[Extent1].[EmployeeID] AS [EmployeeID],
[Extent1].[OrderDate] AS [OrderDate],
[Extent1].[RequiredDate] AS [RequiredDate],
[Extent1].[ShippedDate] AS [ShippedDate],
[Extent1].[ShipVia] AS [ShipVia],
[Extent1].[Freight] AS [Freight],
[Extent1].[ShipName] AS [ShipName],
[Extent1].[ShipAddress] AS [ShipAddress],
[Extent1].[ShipCity] AS [ShipCity],
[Extent1].[ShipRegion] AS [ShipRegion],
[Extent1].[ShipPostalCode] AS [ShipPostalCode],
[Extent1].[ShipCountry] AS [ShipCountry]
FROM [dbo].[Orders] AS [Extent1]
WHERE [Extent1].[OrderDate] <= @p__linq__0
) AS [Project1]
) AS [Project1]
WHERE [Project1].[row_number] > 0
ORDER BY [Project1].[OrderID] ASC
4 、聚合
可使用的聚合运算符有 Average 、 Count 、 Max 、 Min 和 Sum 。
代码片断:
var maxuprice = edm.Products.Max(p => p.UnitPrice);
Console .WriteLine(maxuprice.Value);
5 、连接
可以的连接有 Join 和 GroupJoin 方法。 GroupJoin 组联接等效于左外部联接,它返回第一个(左侧)数据源的每个元素(即使其他数据源中没有关联元素)。
代码片断:
var query = from d in edm.Order_Details
join order in edm.Orders
on d.OrderID equals order.OrderID
select new
{
OrderId = order.OrderID,
ProductId = d.ProductID,
UnitPrice = d.UnitPrice
};
foreach (var q in query)
{
Console .WriteLine("{0},{1},{2}" , q.OrderId, q.ProductId, q.UnitPrice);
}
详细的使用方法可以参考 Linq to SQL 。
有关 LINQ 可以了解: http://msdn.microsoft.com/zh-cn/magazine/cc337893.aspx
本文严重参考: http://www.cnblogs.com/xray2005/archive/2009/05/09/1453036.html
发表评论
-
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 1552使用 EF 4.1 或者更新版本, 你可以直接执行任何数据库 ... -
EntityFramework执行SQL语句
2016-08-10 14:58 1045在EF中执行Sql语句。 Insert Code: ... -
EntityFramework 执行SQL语句进行参数化查询代码示例
2016-08-10 14:59 1922在我们用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 12099POCO Entity Framework ... -
Entity Framework 学习总结之十:加载相关对象
2011-06-30 11:23 3814加载相关对象 实体类型可以定义在数据模型中表 ... -
Entity Framework 学习总结之八:EntitySQL 复杂查询及函数
2011-06-30 11:21 2967复杂查询及函数 外键 Entity ... -
Entity Framework 学习总结之七:EntitySQL 基本查询
2011-06-30 11:20 2122Entity SQL 基本查询 SW ... -
Entity Framework 学习总结之六:EntitySQL 介绍入门
2011-06-30 11:19 2034Entity SQL Language 简介 ... -
Entity Framework 学习总结之五:EntityClient
2011-06-30 11:18 3522System.Data.EntityClient E ... -
Entity Framework 学习总结之四:对象服务介绍使用
2011-06-30 11:18 3091System.Data.Objects (System ...
相关推荐
LINQ to Entities是LINQ技术在Entity Framework中的具体实现,它提供了一种使用LINQ查询Entity Framework实体数据模型的方法。LINQ to Entities可以生成eSQL(Entity SQL),并支持使用LINQ语法对实体框架服务层进行...
随着.NET Framework的发展,数据访问技术也随之进化。从最初的ADO.NET,到后来出现的各种简化封装和技术革新,如SqlHelper、DAAB(Data Access Application Block)、LINQ,直至现在广泛推荐使用的Entity Framework...
在本篇详细知识点讲解中,将基于给定文件信息,深入探讨Entity Framework(实体框架)中Code First方法的相关知识点。根据文件标题《Programming Entity Framework DbContext》和描述,该文件应该是关于Entity ...
深入学习Entity Framework 6的源代码,你可以了解以下内容: - 如何实现ORM框架的基本架构。 - EF如何将对象模型映射到数据库表。 - 查询翻译的过程,包括从LINQ表达式到SQL语句的转换。 - 数据库操作的事务管理和...
Entity Framework (EF) 是微软提供的一款强大的对象关系映射(ORM)框架,它允许开发者使用.NET语言(如C#或VB.NET)来操作数据库,而无需编写大量的SQL语句。在.NET开发中,EF极大地提高了开发效率,因为它将数据...
在学习和使用Entity Framework时,可以通过创建一个解决方案并添加类库项目来开始。例如,创建一个名为“EFProject”的解决方案,并添加名为“EFModel”的类库项目。随后,可以添加一个“***EntityDataModel”项目,...
### Entity Framework 4 In Action:全面解析与应用实践 #### 一、书籍概述与背景介绍 《Entity Framework 4 In Action》是一本深入探讨Entity Framework 4(简称EF4)的权威指南,由Stefano Mostarda、Marco De ...
Entity Framework 4.0和*** Web Forms是微软公司推出的用于构建Web应用程序的技术,这本书主要讲述了如何使用Entity Framework 4.0在*** Web Forms应用程序中实现数据的显示和编辑。 Entity Framework是微软的.NET...
Entity Framework(EF)是微软提供的一个对象关系映射(O/RM)框架,它简化了.NET开发人员访问数据库的代码编写,无需手动编写大量数据访问代码。EF允许开发者通过.NET对象模型来操作数据库。Entity Framework Core...
Entity Framework 学习教程,chm格式,方便离线阅读,需要学习实体框架技术的同仁,可以下载来学习啦
随着后续版本的不断迭代,Entity Framework的功能越来越完善,逐渐成为.NET平台上ORM工具的首选之一。在使用EntityFramework.dll时,开发者应了解其工作原理和最佳实践,以便更好地利用其功能并避免潜在的问题。
EntityFrameworkCore是一个强大的ORM(对象关系映射)框架,专为.NET Core和.NET Framework设计,由微软维护。它使得.NET开发者无需直接操作SQL语句,就能通过C#代码与数据库进行交互,极大地提高了开发效率。Entity...
Entity Framework(简称EF)是微软提供的一款对象关系映射(ORM)框架,它允许开发者使用.NET语言(如C#或VB.NET)来操作数据库,而无需编写大量的SQL语句。在EF中,实体数据模型(Entity Data Model)是核心概念,...
通过深入学习和实践Entity Framework,开发者可以更加高效地进行数据操作,减少与数据库的直接交互,提高代码的可维护性和可读性。同时,由于ORM框架的存在,开发者可以更加专注于业务逻辑,而不是数据库的细节。...
总结来说,"EntityFramework.zip"中的资源很可能是关于如何在.NET环境中使用Entity Framework进行数据库操作和实体与DTO之间映射的实例和指南。对于.NET开发者来说,理解并掌握这些概念和技术对于提升开发效率和代码...
Entity Framework 6 Recipes Entity Framework 6 Recipes
Entity Framework Core Cookbook - Second Edition by Ricardo Peres English | 9 Nov. 2016 | ISBN: 1785883305 | 340 Pages | MOBI/EPUB/PDF+Code Files | 6.2 MB Entity Framework is a highly recommended ...
标题:“Entity Framework orm教程”中所涵盖的知识点 Entity Framework(简称EF)是微软推出的一个对象关系映射框架(ORM),它允许.NET开发人员以面向对象的方式操作数据库中的数据,而不需要编写大量的SQL代码。...
### ADO.NET Entity Framework 教程知识点概览 #### 一、Entity Framework 概述 - **背景**:Entity Framework (EF) 是 Microsoft 推出的一款 ORM (Object Relational Mapping) 工具,旨在简化数据访问层的开发,...