Entity Framework查询】的更多相关文章

Entity Framework查询原理 前言 Entity Framework的全称是ADO.NET Entity Framework,是微软开发的基于ADO.NET的ORM(Object/Relational Mapping)框架.Entity Framework的主要特点:1. 支持多种数据库(Microsoft SQL Server, Oracle, and DB2):2. 强劲的映射引擎,能很好地支持存储过程:3. 提供Visual Studio集成工具,进行可视化操作:4. 能够与A…
最近使用Entity Framework做一个中型的项目,一张表含有千万条数据,并没有使用很复杂的查询,只是程序上使用了DTO进行帅选数据,且使用了分页,效果很不理想.经过跟踪sql,我发现很多简单的查询,都存在子查询,而子查询往往会影响到查询性能,在这里,我想问问大虾,除了自己写SQL语句,有没有更好的解决办法在Entity Framework基础上处理这个问题? 如图所示: Entity Framework查询代码 private async Task<QuotationDto[]> Ge…
ADO.NET Entity Framework ToTraceString  //输出单条查询 DbContext.Database.Log  //这里有详细的日志…
在使用Entity Framework做查询的时候,如果只需要显示,而不用保存实体,那么可以用AsNoTracking()来获取数据. 这样可以提高查询的性能. 代码如下: var context = new Entities(connectStr); var contentlist = context.Set<Content>().AsQueryable().AsNoTracking(); 但是如果取到数据后,要对数据做修改并保存,则无法反映到数据库里. 如: var context = n…
首先我们看下where的方法,直接查看定义(定义如下),其实一种是对IEnumerable的扩展,一种是对IQueryable的扩展,直接看最常用的,其实区别就在IEnumerable的扩展的参数是系统定义的委托Func<TSource,bool> IQueryable的参数则是表达式Expression<Func<TSource,bool>>, 1.IEnumerable<TSource> Where<TSource>(this IEnumer…
Entity Framework是个好东西,虽然没有Hibernate功能强大,但使用更简便.今天整理一下常见SQL如何用EF来表达,Func形式和Linq形式都会列出来(本人更喜欢Func形式). 1.简单查询: SQL: ORDER BY ID EF: //Func形式 ) .OrderBy(c => c.ID) .ToList(); //Linq形式 var clients = from c in ctx.Clients orderby c.ID select c; 2.查询部分字段: S…
前言 Entity Framework的全称是ADO.NET Entity Framework,是微软开发的基于ADO.NET的ORM(Object/Relational Mapping)框架.Entity Framework的主要特点:1. 支持多种数据库(Microsoft SQL Server, Oracle, and DB2):2. 强劲的映射引擎,能很好地支持存储过程:3. 提供Visual Studio集成工具,进行可视化操作:4. 能够与ASP.NET, WPF, WCF, WCF…
在Entity Framework中,可以使用lambda表达式进行对数据的查询,而且可以将查询结果直接映射为对象或者对象列表,这极大的提高的开发速度,并且使数据层的数据更加方便处理和传递.但是很多时候,我们不需要把整个表的字段都查出来,如果我们直接把整个数据实体查询出来,就极大的影响了性能,所以我们需要通过查询匿名对象或者已经定义的方式,对数据库进行查询: 1.实例使用的数据实体类: public class Category { public int Id { get; set; } pub…
1.ADO.NET 3.5 Entity Framework是随着.net framework 3.5一起发布的,确认开发环境版本是大于等于3.5版本 2.确认已经安装了ADO.NET 3.5 Entity Framework 和ADO.NET 3.5 Entity Framework Tools:右键单击创建的winform或者wpf程序,选择“Add|New Item”,查看Templates 列表框中是否有ADO.NET Entity Data Model,如果没有,请到此网址下载并安装:…
一.简介 EF 支持开放底层的 ADO.NET 框架,DbContext有三种常用方法 DbSet.SqlQuery //查询并返回Entities DbContext.Database.SqlQuery<T> //执行某一个查询,并可以将返回集转换为某一对象 DbContext.Database.ExecuteSqlCommand //执行某一并无返回集的SQL 命令,例如UPDATE,DELETE操作 二.用法 1.DbSet.SqlQuery用法 var list = db.admins…
1.简单查询: SQL: SELECT * FROM [Clients] WHERE Type=1 AND Deleted=0 ORDER BY ID EF: //Func形式 var clients = ctx.Clients.Where(c => c.Type == 1 && c.Deleted == 0) .OrderBy(c => c.ID) .ToList(); //Linq形式 var clients = from c in ctx.Clients where c.…
First/FirstOrDefault: using (var ctx = new SchoolDBEntities()) { var student = (from s in ctx.Students where s.StudentName == "Student1" select s).FirstOrDefault<Student>(); } 对应的sql语句如下 ) [Extent1].[StudentID] AS [StudentID], [Extent1].[S…
最近因为要开发大数据量网站,特作比较. Linq to SQL 查询 记录数:399997Linq to SQL 查询 Milliseconds:1910视图查询 记录数:399997视图查询 Milliseconds:3435Entity Framework 查询 记录数:400000Entity Framework 查询 Milliseconds:4049企业库存储过程 to DataReader 记录数:399997企业库存储过程 to DataReader Milliseconds:32…
从性能的角度出发,能够减少 增,删,改,查,跟数据库打交道次数,肯定是对性能会有所提升的(这里单纯是数据库部分). 今天主要怎样减少Entity Framework查询跟数据库打交道的次数,来提高查询性能. 举一个大家最常用功能 “分页” 功能.先贴一段代码. private static IEnumerable<OrderModel> FindPagerOrders(int pageSize, int pageIndex, out int totalCount) { using (var d…
AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. Entity Framework新增数据 以新增用户为例,作为对比,先来看下使用Subsonic的代码: using (TransactionScope scope = new TransactionScope()) { XUser item = new XUser(); item.Name = tbxName.Text.Trim(); item.ChineseName =…
提示51. 怎样由任意形式的流中加载EF元数据 在提示45中我展示了怎样在运行时生成一个连接字符串,这相当漂亮. 其问题在于它依赖于元数据文件(.csdl .ssdl .msl)存在于本地磁盘上. 但是如果这些文件存在于web服务器中或者类似的位置,甚至你无权访本地文件系统而无法把它们拷贝到本地呢? 原来你也可以由流中加载元数据,这篇提示将告诉你怎么做. 步骤1:获得用于CSDL,MSL与SSDL的XmlTextReaders: 这可以尽可能的简单,如'new XmlTextReader(url…
1. LINQ  TO SQL  和EF 特点:  LINQ TO SQL和Entity Framework都是一种包含LINQ功能的ORM 也就是所谓的关系对象的映射.其中包括的有DBFrist  Code Frist    ModeL  Frist   三种中方式 来进行和数据库之间的访问.只是形式不同而已本质没有什么区别.都是ORM  之间的转化.最终都是来进行访问底层的数据库的对象 和服务. 简单来说LINQ是为了满足不知道怎么操作数据库的程序员开发设计的,LinQ 可以让他们以一种面向…
ROW_NUMBER() OVER (ORDER BY (select Null)) AS Id entity framework 查询中有这句会有异常…
问题 你想用LINQ写一个搜索查询,能被转换成更有效率的SQL.另外,你想用EF的CodeFirst方式实现. 解决方案 假设你有如下Figure 13-6所示的模型 Figure 13-6. A simple model with a Reservation entity            首先,这个例子用EF的CodeFirst方式实现,在Listing 13-10,我们创建实体类Reservation Listing 13-10. The Reservation Entity Obje…
EF中基于方法的查询方式不同于LINQ和以往的ADO.NET,正因为如此,有必要深入学习一下啦.闲话不多说,现在开始一个MVC项目,在项目中临床学习. 创建MVC项目 1.“文件”--“新建项目”--“模板”--“Web”--“ASP.NET MVC4应用程序”,创建一个项目名称为 GuestBook 的MVC4项目 2.在文件目录的中Models目录中新建两个Model类 Book.cs: using System; using System.Collections.Generic; usin…
前言 首先来简单的复习一下如何使用Code First. 第一步还是先建立一个控制台的应用程序,然后通过Nuget添加Entity Framework.那么同时会给packages.config和App.config添加相应的配置. 第二步添加一个数据操作上下文实体类.添加两个构造函数,并添加一个Person的实体类. 在App.config的配置文件中添加相应的数据链接配置. 第三步在调用即可生成相应的数据库. EFContext.cs public class EFContext:DbCon…
Entity Framework是个好东西,虽然没有Hibernate功能强大,但使用更简便.今天整理一下常见SQL如何用EF来表达,Func形式和Linq形式都会列出来(本人更喜欢Func形式). 1.简单查询: SQL: ORDER BY ID EF: //Func形式 ) .OrderBy(c => c.ID) .ToList(); //Linq形式 var clients = from c in ctx.Clients orderby c.ID select c; 2.查询部分字段: S…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第三章 查询 前一章,我们展示了常见数据库场景的建模方式,本章将向你展示如何查询实体数据模型,一般来说,有三种方式: 1.LINQ to Entities; 2.Entity SQL; 3.Native SQL; 我们将在本章演示这三种方式,为了帮助你理解实体框架查询的基本知识,本章覆盖了常见和不常见的场景.同时我们也展示了实体框架6新的查询功能. 3-1.异步查询 你有一个长耗时的实体框架…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-2使用原生SQL语句更新 问题 你想在实体框架中使用原生的SQL语句,来更新底层数据存储. 解决方案 假设你有一张如图3-2所示的Payment数据库表,使用实体框架设计器工具创建了一个如图3-2所示的模型. 图3-2 Payment表,包含一个供应商的付款信息 图3-3 包含一个Payment实体的模型 为了在底层的Payment表中执行一句和多句SQL语句,可以使用在DbContex…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-4使用实体SQL查询模型 问题 你想通过执行Entity SQL语句来查询你的实体数据模型并返回强类型的对象. 解决方案 假设你有图3-5所示的模型,它包含一个Customer实体类型.这个实体类型有一个Name属性和Email属性.你要使用Entiyt SQL查询这个模型. 图3-5 包含一个Customer实体类型的模型 使用Entity SQL(eSQL)查询模型,Entity S…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-6在查询中设置默认值 问题 你有这样一个用例,当查询返回null值时,给相应属性设置默认值.在我们示例中,当数据库中返回null值时,用‘0’作为YearsWorked属性的默认值. 解决方案 假设你有如图3-7所示的模型,你想通过模型查询employees.在数据库中,代表employees的表包含一可为空的YearsWorked列.该列映射到Employee实体中的YearsWork…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-8与列表值比较 问题 你想查询一个实体,条件是给定的列表中包含指定属性的值. 解决方案 假设你有如图3-9所示的模型. 图3-9 包含books和它的categoryes的模型 你想查找给定目录列表中的所有图书.在代码清单3-16中使用LINQ和Entity SQL来实现这上功能. 代理清单3-16. 使用LINQ和Entity SQL来查找给定目录列表中的所有图书 using (var…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-10应用左连接 问题 你想使用左外连接来合并两个实体的属性. 解决方案 假设你有如图3-11所示的模型. 图3-11 一个包含Product和TopSelling的模型 畅销产品有一个与之关联的TopSelling实体.当然,不是所有的产品都是畅销产品.这就是为什么关系为零或者1.当一个产品为畅销产品时,与之关联的topSelling实体包含一个用户评级.你想查找和呈现所有的产品,和与之…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-12 分页和过滤 问题 你想使用分页和过滤来创建查询. 解决方案 假设你有如图3-13所示的模型,模型中有一个Custormer实体类型. 图3-13 包含一个Customer实体类型的模型 你有一个基于过滤条件来显示客户信息的应用.你的公司有许多客户(也许数百万!),为了保证尽可能响应的用户体验,你想在每一页上只显示一定数量的客户.创建一个查询,它能过虑客户并按页返回可控数量的结果集.…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-14  结果集扁平化 问题 你有一对多关联的两个实体,你想通过一个查询,获取关联中的两个实体的扁平化投影.扁平化或者叫压缩,这是不规范的叫法.它是指一个有父类和子类的对象图,被投影到一个单独的类中. 解决方案 假设你有一对拥有一对多关联的实体,如图3-15所示的模型. 图3-15 模型中,一个代表助理的Associate的实体类型和一个代表助理工资历史的AssociateSalary实体…