接上一篇文章.现在写程序,做项目不是说功能做完就完事了,在平常的开发过程中对于性能的考虑也是极其重要的. 关于ef的那些事,今天就来说说吧.首先必须得知道.net ef在程序中的五种状态变化过程与原理. 主要来说说查询部分的性能优化,在所有查询中,客户端查询出来的数据一般来说是不需要进行跟踪的.也就是说查询只是给用户看,不做其他任何操作.对于基于B/S模式的项目网站开发,应该是无状态的,也就是ef中的游离态(Unchanged)(个人理解).如果是C/S可能还需要进行其他连接的状态.通俗的说,在…
异常: 未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架提供程序.请确保在应用程序配置文件的“entityFramework”节中注册了该提供程序. 解决办法: 1)确保项目引用了EntityFramework.dll和EntityFramework.SqlServer: 2)确保配置文件设置正确: 在web.config文件首尾分别添加两个节点:  <configSections>     <!-- For more informa…
项目地址:https://github.com/aspnet/EntityFramework.Docs/tree/master/samples/core 谢谢浏览!…
原文:Advanced Entity Framework 6 Scenarios for an MVC 5 Web Application 1.执行原生SQL查询: EF Code First API包含直接传递SQL命令到数据库的方法: 使用DbSet.SqlQuery方法查询返回实体类型.返回的对象必须是DbSet对象所期望的类型,并且数据库上下文会自动追踪它们除非我们关闭了追踪. 使用Database.SqlQuery方法查询返回非实体类型.返回的数据不会被数据库上下文追踪,即使我们为该方…
1. 简介 ORM框架:Object Relation Mapping,用操作对象的方式来操作数据库 其它框架:Dapper.NHibernate,首推EF,微软官方的. EF底层还是ADO.NET实现的. EF支持SqlServer.MySQL.Oracle等主流数据库 使用EF开发数据库有两种形式:先建数据库or先建模型类 三种模式:DataBase First数据库优先:先建数据库表结构,生成EDM文件 Model First模型优先:没啥用 Code First:代码优先:开发者自己写模…
1.EF:this.Configuration.UseDatabaseNullSemantics = true; //关闭数据库null比较行为 2.实体必填字段要加:[Required]属性,可定长度的必加[StringLength(20)]属性,要不然数据库字段串会变成:nvarchar(MAX) NULL,查询时会产生多余的or条件,影响性能 3.EF不要写太复杂的表达式,可能会产生很复杂的sql性能不好 4.尽量不使用字符串转表达式的方法 5.解决数据库死锁可使用事务和no lock方法…
首先需要在Window中添加Application Initialization Application Initialization 在IIS中配置Application Pool 编辑Application Pool 在IIS配置Web Site 配置Website 配置完成,如果版本在7.5,可以下载:Application Initialization Module for IIS 7.5 还可以把Application Pool中的Idletimeout 设置成0,也会加快网站的第一次…
方案一: 使用EntityFramework.Extended优点: 启下载量是Z.EntityFramework.Extensions的10倍+ 不会过期缺点:不能批量Insert 方案二:解决批量Insert(update不可用,update必须是true) ///在批量插入时,需要加上dbContext.Configuration.AutoDetectChangesEnabled = false; ///解释:http://www.cnblogs.com/linfei721/archive…
前言 本文开始前我将循序渐进先了解下实现EF中的异步,并将重点主要是放在EF中的事务以及性能优化上,希望通过此文能够帮助到你. 异步 既然是异步我们就得知道我们知道在什么情况下需要使用异步编程,当等待一个比较耗时的操作时,可以用异步来释放当前的托管线程而无需等待,从而在管理线程中不需要花费额外的时间,也就是不会阻塞当前线程的运行. 在客户端如:Windows Form以及WPF应用程序中,当执行异步操作时,则当前线程能够保持用户界面持续响应.在服务器端如:ASP.NET应用程序中,执行异步操作可…
按照通常的方式分页查询至少要查询数据两遍,一个操作是查询总数,另一个是查询数据,这样有些耗时 这里介绍一个基于EF的插件 EntityFramework.Extended,当然这个插件有很多的功能,比方说批量删除.批量修改.批量查询.缓存查询等 这里只介绍批量查询的方法 通过SQL Server Profilter监视生成的SQL代码,发现只连接了一次数据库,非常的厉害 不解释直接上代码 通用分页查询方法: /// <summary> /// 分页查询 /// </summary>…
前言 这两天在着实研究EF Core项目当中对于一些查询也没实际去检测,于是想着利用放假时间去实际测试下,结果本文就出来了,too young,too simple,后续博主会从底层翻译表达式树弄起,来从源头了解EF Core,通过本文你会明白不是EF Core团队没做性能优化,而是你根本就没用过而且正在倒退. EntityFramework Core性能优化初探 简单粗暴直接上代码,给出上下文以及需要用到的测试类,如下: public class EFCoreContext : DbConte…
目录 简介 读写分离 指定字段更新 事务 Entity 简介 本EF扩展插件将持续更新:开源,敏捷,高性能.(由于EF Core暂未提供方便的钩子位置,暂无EF Core版本) EntityFramework.Extension代码 (GitHub欢迎Fork) EntityFramework.Extension代码 (Nuget:Install-Package EntityFramework.Extension) 读写分离 读写分离,支持可配置项的方式.同时支持权重的方式轮询. 先看段配置文件…
IdentityServer具有良好的扩展性,其中一个可扩展点是用于IdentityServer所需数据的存储机制. 本快速入门介绍了如何配置IdentityServer以使用EntityFramework(EF)作为此数据的存储机制(而不是使用我们迄今为止使用的内存中实现). IdentityServer4.EntityFramework组件 有两种类型的数据需要持久化到数据库中. 首先是配置数据(资源和客户端),第二个是IdentityServer在使用时产生的操作数据(令牌,代码和同意书)…
.net core经历2.0版本之后,已经非常稳定,完全可以进行企业级开发并跨平台部署到几乎任何服务器.个人测试效率是.net core是.net framework效率的3倍.其他语言没有测试,等测试之后会发出来供大家参考. 目前.net core的更新速度还是非常快滴,目前已经更新到了2.1,感兴趣的同学可以尝鲜.用.net core开发还是很爽滴,可以让广大.net开发的技术朋友以很快的速度转换到.net core开发,学习成本以及转换成本都比较低,还可以学习很多新技术,对自己的提升,技术…
本文用了EF,如果不适用EF的,请参考这篇文章,实现这些接口来自己定义存储等逻辑.http://www.cnblogs.com/stulzq/p/8144056.html IdentityServer具有良好的扩展性,其中一个可扩展点是用于IdentityServer所需数据的存储机制. 本快速入门介绍了如何配置IdentityServer以使用EntityFramework(EF)作为此数据的存储机制(而不是使用我们迄今为止使用的内存中实现). IdentityServer4.EntityFr…
原文链接:http://www.entityframeworktutorial.net/code-first/column-dataannotations-attribute-in-code-first.aspx EF 6 Code-First系列文章目录: 1 翻译系列:什么是Code First(EF 6 Code First 系列) 2.翻译系列:为EF Code-First设置开发环境(EF 6 Code-First系列) 3.翻译系列:EF Code-First 示例(EF 6 Cod…
前段时间接触了EntityFramework,对ORM框架也是有了初步的认识,现在对其进行一点小总结. 一.ORM简介 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术.简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中.是不是还是不懂?那我们把ORM拆开来说: O   创建简单的实体对象,也就是数据Model R   关系数据库中数据表 M   把实体对…
先卸载EF:Uninstall-Package EntityFramework -Force 在安装EF5.0:Install-Package EntityFramework –Version 5.0.0 安装步骤如下: 1.安装vs2012 2.打开vs2012的工具下的扩展工薪 3.搜索nuget,没安装的直接在线点,我的已经安装了 4.安装好了NuGet,程序包管理器控制台,2012的这个Nuget还真是方便找东西,其他的东西也可以这样玩 5.打开了,新建一个控制台程序,记得要选择.net…
EntityFramework EF核心库 EntityFramework.SqlServer EF针对sqlsever的库 引用 system.Data.Entity   EF相比SQL语句方便,但性能要差,根据需求来决定使用哪个   数据上下文(Context)     帮助我们处理连接,增删改查等操作的类 上下文需要继承DbContext   EF会自动检查要连接的数据库是否存在,如果不存在则自动创建一个   先写好C#代码,然后反向生成数据库(代码前置) EF可以操作多种数据库,所以在配…
目录 EF Core速度问题 问题描述 EF使用方法1,每一行存储一次(400条/s) EF使用方法2,链接不释放 (40条/s) EF使用方法3,多次add,一次SaveChanges(400条/s,但是数据库操作异常慢) using内部千万不要使用try catch 开个贴,专门记录使用EF Core遇到的问题,以后自己用.net写东西,操作数据库就使用EF Core了 EF Core速度问题 问题描述 我需要导入600多个csv文件,批量导入不会弄,网上也没查 使用了读取再存储的方法 EF…
首先我们先看一下Join public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Fu…
首先我们先看一下Join public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Fu…
介绍     背景什么就不提了,无外乎出现了大数据需要处理.简单的说就是我测试了EF正常的插入以及一个优化小方式而已,然后做了查询记录.其余没有什么,写这篇只是为了记录结果方便以后数据参考吧. 代码介绍: 首先是插入代码常规: EFHelp<TimeRecord> eFHelp = new EFHelp<TimeRecord>(); ; i < ; i++) { TimeRecord t = new TimeRecord(); t.id = Guid.NewGuid().To…
系列文章导航 [开源]OSharp框架解说系列(1):总体设计 [开源]OSharp框架解说系列(2.1):EasyUI的后台界面搭建及极致重构 [开源]OSharp框架解说系列(2.2):EasyUI复杂布局及数据操作 [开源]OSharp框架解说系列(3):扩展方法 [开源]OSharp框架解说系列(4):架构分层及IoC [开源]OSharp框架解说系列(5.1):EntityFramework数据层设计 [开源]OSharp框架解说系列(5.2):EntityFramework数据层实现…
OSharp框架解说系列(1):总体设计 〇.前言 哈,距离前一个系列<MVC实用构架设计>的烂尾篇(2013年9月1日)已经跨了两个年头了,今天是2015年1月9日,日期已经相映,让我们开启新的航程吧. 前一个系列讲的主要是我对架构设计的理解以及怎样用好EntityFramework的一些想法,在技术细节上并没有太多的考究.不幸的是,不少同学把这个架构当作框架来用了,里边留的很多坑,坑苦了很多人,真是误人子弟,深表愧疚.于是重新整理代码,整理思路,鼓捣出了这个我们将要详解的开源框架:OSha…
离上一篇又过去了一个月,时间比较紧,后续估计会更紧,所以这次将放出更多公共操作类及配套的CodeSmith模板,本篇将简要介绍新放出的重要功能,供有兴趣的同学参考. 重要更新 这一次对两个VS解决方案均做了大量调整,包含项目结构及命名空间. Util解决方案的目录截图如下. 除了少数需要配置的集成测试外,大部分单元测试已放出. Applications项目示例的目录截图如下. Applications项目示例虽然包含的东西不多,却建了不少项目,可能并不符合你的胃口,我将在下一篇文章向你演示其它项…
本文主要介绍如何使用CodeFirst模式来新建并更新数据库 在使用Entity Framwork的三种方式(ModelFist.DBFirst.CodeFirst)中,CodeFirst方式书写的代码最为干净. 至于CodeFist方式的详细优缺点请各位读者自行搜索,这里不多赘述. 1. 使用CodeFirst方式创建数据库 我们新建一个控制台项目,项目中添加两个Model:Author和Blog以及DbContext. DbContext的添加方式如下: 项目上右键->添加->新建项-&g…
[本文篇幅较长,可以通过目录查看您感兴趣的内容,或者下载格式良好的PDF版本文件查看] 目录 一.ORM的"三国志"    2 1,PDF.NET诞生历程    2 2,Linq2Sql&EF:    3 3,微型ORM崛起    4 二.一决高下    4 2.1,ORM没有DataSet快?    4 2.1.1,ORM生成SQL的质量问题    4 2.1.2,DataReader没有DataSet快?    5 2,ORM的三个火枪手    6 2.1,委托+缓存   …
本文程序基于VS2015.EF6.1,本文不做过多深入讨论,只是个入门. EF 就是微软的 EntityFramework,主要分为 DB First,Model First,Code First.之前也只是简单的用 DB First,后来发现 Code First 才是大势所趋,毕竟对于 Coder 来说代码实现更好点,而且迁移很好用. 首先是程序结构 一.Models 先弄2个Model,对应于2张表的结构 public class UserModel { public int Id { g…
Util最新代码更新说明   离上一篇又过去了一个月,时间比较紧,后续估计会更紧,所以这次将放出更多公共操作类及配套的CodeSmith模板,本篇将简要介绍新放出的重要功能,供有兴趣的同学参考. 重要更新 这一次对两个VS解决方案均做了大量调整,包含项目结构及命名空间. Util解决方案的目录截图如下. 除了少数需要配置的集成测试外,大部分单元测试已放出. Applications项目示例的目录截图如下. Applications项目示例虽然包含的东西不多,却建了不少项目,可能并不符合你的胃口,…