LINQ以及LINQ to Object 和LINQ to Entities
LINQ的全称是Language Integrated Query,中文译成“语言集成查询”,是一种查询技术。
LINQ查询通过提供一种跨各种数据源和数据格式使用数据的一致模型,简化了查询过程。LINQ查询分为对内存对象的查询(LINQ to Object)、对SQL Server数据库的查询(LINQ to SQL)、以及对由ADO.NET实体框架创建的实体集进行查询(LINQ to Entities)等(LINQ to DataSet、LINQ to XML)。
LINQ to Object:继承IEnumerable或IEnumerable<T>接口,无须使用LINQ提供程序或API。所有的操作都是在内存中进行的。
LINQ to SQL:继承IQueryable或IQueryable<T>接口,在LINQ to SQL中,把关系型数据库的数据模型映射到开发人员所用的编程语言表示的对象模型。仅支持sql server 数据库
LINQ to Entities:继承IQueryable或IQueryable<T>接口,LINQ to Entities是Entity Framework的一部分并且取代LINQ to SQL作为在数据库上使用LINQ的标准机制。Entity Framework是行业领先的对象―关系映射(ORM)系统,可以和多种数据库一起使用,并支持各种灵活、复杂的数据模型。LINQ to Entities作为Entity Framework的一部分,它可以使用Entity Framework数据模型来执行LINQ查询。当应用程序运行时,LINQ to Entities会将对象模型中的语言集成查询转换为SQL。然后将它们发送到数据库进行执行。当数据库返回结果时,LINQ to Entities会将它们转换回开发人员所用的编程语言处理的对象。
LINQ to Entities的技术原理:程序会把查询表达式先缓存到表达式树中,只有当真正获取数据的时候,才会由IQueryProvider解析表达式树,生成sql语句执行数据库查询操作
LINQ查询表达式分为两种:
一.查询语法:
eg:var query=from b in arr where (b=>b>0) select b
二.查询方法:
eg:var query=arr.where(b=>b>0).select(b=>b)
*查询语法最终被编译成查询方法
LINQ以及LINQ to Object 和LINQ to Entities的更多相关文章
- 无法将类型“System.Nullable`1”强制转换为类型“System.Object”。LINQ to Entities 仅支持强制转换 EDM 基元或枚举类型。
在一个项目中使用LINQ和EF时出现了题目所示的异常,搜索了很多资料都找不到解决办法,主要是因为EF方面的知识欠缺. 先将情况记录如下,以供以后参考. 查询主要设计两张表,由外键关联: 在进行下面的查 ...
- Entity Framework Code First 在Object Join Linq查询时出现全表查询的语句。
最近一个项目,使用微软的Entity Framework的ORM框架的项目,部署到现场后,出现了系统缓慢,多个客户端的内存溢出崩溃的问题. 打开了SQL Server Profiler(SQL Ser ...
- C# LINQ学习笔记一:走进LINQ的世界
本笔记摘抄自:https://www.cnblogs.com/liqingwen/p/5832322.html,记录一下学习过程以备后续查用. LINQ 简介: 语言集成查询(LINQ)是Vi ...
- LINQ&EF任我行(二)--LinQ to Object
(原创:灰灰虫的家http://hi.baidu.com/grayworm)LinQ to Objects是LinQ家庭的核心,其它的LinQ也使用了与LinQ to Objects相同的查询句法.最 ...
- Convert XML to Object using LINQ
Class and Xml : Please see my another article. http://www.cnblogs.com/mingmingruyuedlut/p/3436803.ht ...
- List<Object> 使用Linq
List<Asset> bdList = allAsset.Where(m => m.Owner.Depts == view.DeptName).ToList(); var quer ...
- LINQ系列:C#中与LINQ相关特性
1. 匿名类型 通过关键字var定义匿名类型,编译器将根据运算符右侧表达式的值来发出一个强类型. 使用匿名类型时要遵守的一些基本规则: ◊ 匿名类型必须有一个初始化值,而且这个值不能是空值(null) ...
- 动态linq表达式新方法,Dynamic LINQ Extension Method
Remember those old posts on Dynamic LINQ? You are probably aware that Microsoft has made its impleme ...
- [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界
本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...
随机推荐
- CCPC-Wannafly Winter Camp Day4 Div1 - 夺宝奇兵 - [简单思维题]
题目链接:https://zhixincode.com/contest/18/problem/A?problem_id=259 题目描述 wls正在玩一个寻宝游戏. 宝藏一共有 $n$ 种,都藏在一个 ...
- [No0000B1]ReSharper操作指南2/16-ReSharper食谱与特定于域的教程
自动导入名称空间 有关更多信息,请参阅导入缺少命名空间. 每当您使用未添加using语句的命名空间中的类型时,ReSharper会为您提供在您所在文件的顶部添加相应的语句.这由在所使用的类型上方显示的 ...
- [No000010B]Git4/9-时光机穿梭
我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容: Git is a distributed version c ...
- Maven Tomcat Plugin
<!-- 本地Tomcat --> <dependency> <groupId>org.apache.tomcat.maven</groupId> &l ...
- Page8:对偶原理以及结构分解[Linear System Theory]
内容包含状态转移矩阵的对偶性.方块图的对偶性.时序的对偶性以及对偶性原理,能控能观标准型及其结构分解
- py文件传输
本文参考:http://blog.163.com/kongdelu2009@yeah/blog/static/1119952072009102562126194/ 发送端程序: # -*- codin ...
- dp单调性优化
跟着书上的思路学习dp的单调性优化觉得还是很容易想的. 数据范围: dp,数据范围是百万,这应该是O(n)的算法了. 首先不难想到设f[i]表示到第i个百米所能达到的最大能量,那么f[n]即为所求. ...
- sql server创建临时表的两种写法和删除临时表
--创建.删除临时表 --第一种方式 create table #tmp(name varchar(255),id int) --第二种方式 select count(id) as storyNum ...
- 洛谷P4358密钥破解 [CQOI2016] 数论
正解:数论 解题报告: 先,放个传送门QwQ 这题难点可能在理解题意,,, 所以我先放个题意QAQ 大概就是说,给定一个整数N,可以被拆成两个质数的成绩p*q,然后给出了一个数e,求d满足e*d=1( ...
- CentOS 7 下安装jdk1.8(转)
原文:https://blog.argcv.com/articles/3155.c CentOS 7下目前默认是jdk1.6和1.7.若需要更高版本的1.8,我们就需要一点额外的手段了. 首先,我们需 ...