EF那点事】的更多相关文章

EntityFramework 1-->什么是EnitityFramework   1.1--> ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,早期被称为 ObjectSpace.   1.2-->什么是O/R Mapping 广义上,ORM指的是面向对象的对象模型和关系型数据库的数据结构之间的相互转换. 狭义上,ORM可以被认为是,基于关系型数据库的数据存储,实现一个虚拟的面向对象的数据…
接上一篇文章.现在写程序,做项目不是说功能做完就完事了,在平常的开发过程中对于性能的考虑也是极其重要的. 关于ef的那些事,今天就来说说吧.首先必须得知道.net ef在程序中的五种状态变化过程与原理. 主要来说说查询部分的性能优化,在所有查询中,客户端查询出来的数据一般来说是不需要进行跟踪的.也就是说查询只是给用户看,不做其他任何操作.对于基于B/S模式的项目网站开发,应该是无状态的,也就是ef中的游离态(Unchanged)(个人理解).如果是C/S可能还需要进行其他连接的状态.通俗的说,在…
"%3Cdiv%20class%3D%22htmledit_views%22%20id%3D%22content_views%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Cp%20id%3D%22main-toc%22%3E%3Cstrong%3E%E7%9B%AE%E5%BD%95%3C%2Fstrong%3E%3C%2Fp%3E%0A%0A%3Cp%20id%3D%221.socket%25E5%25B1%2582-to…
一.EF 1. 只做查询 ,不用做修改时可以用,提高EF查询性能 var list = db.Users.AsNoTracking().First(x=>x.Name).ToList();…
最近研究了下EF怎么调用 数据库的分页存储过程,发现还是很不错的 1.数据库存储过程如下,一个简单的不含条件判断的 2.然后新建数据模型中选择存储过程: : 3.EF会自动生存一个返回复杂类型(ObjectResult)的方法,如下: 4.最后调用此方法: 5.这里值得注意的是,这里有两个输出参数 ObjectParameter(rowCount,pageCount),还有获取返回的数据 result 后一定要toList(),这里涉及到EF的延时查询,如果不toList(),就会得不到 输出参…
延迟加载又称懒加载,通俗一点就是关联了一个对象,不用的时候不去查这个对象,当调用的时候再组织sql去查出这个对象的相关内容. 一.在使用EF时,我们会发现借助于框架生成的实体类中的的导航属性通常是标记 virtual的,这是为何呢?  二.让我们通过几个例子来发现其中的奥秘 下面的代码是通用的查询,先是打印了查询生成的sql,接着查询出一个Employee对象并带出对应的Dempartment对象. using (DemoEntities db = new DemoEntities()) { d…
EntityFramework 在VS2015添加新建项时,选择数据->ADO.NET 实体数据模型,有一下选项 来自数据库的EF设计器,这个就是我们最常用的EntityFramework设计模型了,选择它,然后根据设计好的数据库,就会生成一个edmx文件,和一个数据库上下文,然后我们就可以不用写sql也可以愉快的访问数据啦,但是这种方式对于经常变动的数据库结构,更新起来经常会有一些bug,原数据库删除的字段和结构,在edmx中更新模型是需要手动删除的 CodeFirst CodeFitst的出…
本文唯一访问地址:http://www.cnblogs.com/yubaolee/p/DynamicLinq.html 对于系统开发来说,按不同字段进行过滤查询是一种常见的需求.在EF中通常的做法是: /// <summary> /// 只是简单举例,只用了两个过滤条件 /// </summary> IEnumerable<UserInfo> Search(string username = "", string usertype = "&…
本章简言 上一章笔者对于WinForm开发过程用到的几个知识点做了讲解.笔者们可以以此为开端进行学习.而本章我们来讲一个跟ORM思想有关的知识点.在讲之前让我们想一下关于JAVA的hibernate知识点.hibernate也是ORM框架.记得hibernate里面有一个叫HQL.先不管HQL的好与坏.主要是明白HQL的目地是什么.ORM的思想就是为了让用户在操作数据的时候用上面向对象的思想来看,而不是二维数据了.所以HQL笔者认为就是一个面向对象思想的SQL语句.那么为什么笔者要讲到HQL呢?…
返回<8天掌握EF的Code First开发>总目录 本篇目录 理解应用需求 数据库设计 创建实体数据模型 创建实体类 创建关系和导航属性 实现DbContext类 执行数据访问 理解仓储模式 理解工作单元 管理分类 管理博客 管理评论 总结 本系列的源码本人已托管于Coding上:点击查看,想要注册Coding的可以点击该连接注册. 先附上codeplex上EF的源码:entityframework.codeplex.com,此外,本人的实验环境是VS 2013 Update 5,windo…
EF虽说对LocalDb支持的不错,但LocalDb有自身的缺陷(不想sqlite那样数据库文件可以像普通文件一样使用). LocalDb在一个计算机上会对数据库有唯一性约束,要求本机的localdb不能重名.如果没有注意到这一点就会有以下问题: Cannot attach the file ‘{0}' as database '{1}' EF CodeFirst 指定不同数据库文件路径来新建同名的数据库时就会出现无法新建数据库(localDb). 删除localdb的方法 不能仅仅删除文件,需…
期待已久的EF终于来了 学完本篇文章,你将会掌握基于EF数据模型的完整开发流程. 本次将会完成EF数据模型的搭建和使用. 基于这个模型,将之前的示例添加数据库查询验证功能. 文章提纲 概述 & 要点 详细步骤 总结 概述 & 要点 下面是本文要点,正文部分会有详细介绍. EF架构图 新建基于EF的Data Model的约定 关于ORM的重要概念,和传统方式开发的区别 EF开发的整体过程 详细步骤 新建文件夹,规划好代码摆放位置 创建相关类 (Data Model) 创建 Database…
前言 有段时间没有更新博文了,一直在忙工作很少有时间静下心来继续研究点东西,说来也惭愧,归咎原因最主要的还是因为懒惰.空想也是不管用的,有时候很多想法被扼杀到了摇篮里,还没开始做就放弃了,这是多数人会有的恶习,世界上最不缺少的就是空想家,而是实践者,有句俗话说的好不怕千招会,只怕一招绝,能踏踏实实做好一件事的人才是人生的赢家.另外在平时也有研究过很多有趣的技术,但往往是没有研究到最后,只是研究了如何使用它,然后想要写成文章就是很危险的事情,如果对某项技术研究的并不通透,这时候发表见解的话这样只会…
回到目录 本文介绍两个概念,防数据库自动删除,这是由于在code first模式下,当数据实体发生变化时,会对原来数据库进行删除,并将新数据表添加进来,但这对于我们的运营环境数据库,是万万不能接受的,第二个问题是数据迁移问题,当你有新的实体建立后,如何响应到数据库,这成为一个问题,当然实现也很简单,我们直接使用migrations工具即可. 一 防数据库删除 将你的业务DbInitializer的基类改成CreateDatabaseIfNotExists即可解决这个问题,这是在数据初始化时需要做…
最近项目有点闲,终于可以了解点自己想了解的了,以前听同事讲面试的经历总会被问到“如何处理高并发大数据” 乍一听感觉这东西好像很有学问的样子,于是并发这个词在脑海里留深刻印像,而且在自己心中的技术地位也提高很多,也导致了解并发相关的知识时,也带着思想负担,总以为很难懂,程序员或许都是这样,在自己不懂的技术领域,别人说一个很简单的技术,给他的感觉都是很高深的样子,其实自己一了解就会发现,“哎哟 我 C 原来就这样儿啊!”总之只要你想了解,花点时间就没有难的事! 好了 正式进入正题 EF并发处理 在此…
本文学习旺杰兄的 CodeFirst 系列教程而写.尽量摆脱之前的影子写出自己的理解 表间关系.级联删除 简单玩法已经走通了,但是我就是想搞点事出来.今天来搞搞表间关系和级联删除 表间关系 毫无疑问在设计表的时候,对于两张有关联的表,我们要做一对一或一对多的外键关系.这样在使用EF的时候可以轻松的使用导航属性不说,也使得表结构更加简单明朗.使用CodeFirst我们该如何配置呢? 一对一 我们这边有这样两个实体.User.UserCard. 一个用户肯定只会拥有一个身份证号.而一个身份证号肯定也…
5.5.1 <关于“数据关联”,你不一定清楚的事> 这讲视频比较全面地介绍了“一对一”.“一对多”和“多对多”三种数据关联类型在关系数据库和Entity Framework数据模型中的实现.再次强调一下,本讲所介绍的内容非常重要,务必掌握. 5.5.2 <Entity Framework与单元测试>  在数据库应用程序开发中,单元测试对保证代码质量,实现敏捷开发具有重要意义,在这讲视频中,将向您介绍一些实用的单元测试方法,这些方法,您可以直接应用于自己的项目开发实践中.另外,在后继…
CodeFirst是EF框架的第三种方式,也是最为复杂一种方式,本文将以EF4.1版本为基础,简要讲解一下用法,同时,也介绍DbContext的用法. 本文采用的示例仍然是前两篇采用的博客用户的示例.故不在此对业务进行描述. 首先新建一个C#控制台应用程序,并命名为EFCodeFirstSample. 利用Nuget为该项目添加引用Entity Framework4.1的引用. PM> Install-Package EntityFramework 当然,你也可以用常规的方式,先下载EF4.1安…
本文出自8天掌握EF的Code First开发系列,经过自己的实践整理出来. 本篇目录 理解Code First及其约定和配置 创建数据表结构 管理实体关系 三种继承模式 本章小结 本人的实验环境是VS 2012,windows 7,MSSQL Server 2008 R2. 上一篇<第一个Code First应用>简单介绍了如何使用EF的Code First方式创建一个项目,也介绍了如何进行简单的CRUD以及数据库模式的改变.这一篇,我们会深入学习领域建模需要注意的地方以及实体之间关系的管理…
今天一大早来看到园友分享的福利<分享一个前后端分离方案源码-前端angularjs+requirejs+dhtmlx 后端asp.net webapi>,我也来分享一个吧.以下内容由笔者写于昨天晚上[2015.10.08]. <集DDD,TDD,SOLID,MVVM,DI,EF,Angularjs等于一身的.NET(C#)开源可扩展电商系统–Virto Commerce>–看着这个标题有点长了,笔者本想试着用这个标题来大体概括一下这个[Virto Commerce]基于.NET(C…
原文来自:http://www.cnblogs.com/yubaolee/p/DynamicLinq.html 对于系统开发来说,按不同字段进行过滤查询是一种常见的需求.在EF中通常的做法是: /// <summary> /// 只是简单举例,只用了两个过滤条件 /// </summary> IEnumerable<UserInfo> Search(string username = "", string usertype = ""…
  2009年發行ASP.NET MVC 1.0版 2010年發行ASP.NET MVC 2.0版,VS2010 2011年發行ASP.NET MVC 3.0版+EF4,需要.Net4.0支持,VS2011 2012年發行ASP.NET MVC 4.0版+EF5,需要.Net4.0支持,VS2012 2013年發行ASP.NET MVC 5.0版+EF6,需要.Net4.5支持,VS2013 2015年發行ASP.NET MVC 6.0版+EF7,需要.Net5.0支持,VS2015 ASP.N…
章节信息 Entity Framework 6 Recipes 第二版第一章: Chapter 1: Getting Started with Entity Framework ------------------------------------------------------------------------- 阅读说明: 1  术语第一次出现时用中文(原文)表示,如EntityType将表示成实体类型(EntityType) 2  菜单名用粗体表示,如File将表示成文件 3  右…
.NET Core 1.0.ASP.NET Core 1.0和EF Core 1.0简介 英文原文:Reintroducing .NET Core 1.0, ASP.NET Core 1.0, and EF Core 1.0 新版本的 ASP.NET 和 Entity Framework 有一个严重的问题,就是它们同以前的版本不兼容.这不只是行为或 API 稍有差异的事,而基本上是进行了完全的重写,去掉了大量的功能. 因此,目前人们认为,将这些框架称为 ASP.NET 5.0 和 Entity…
分享自己从代码小工一步步走向搭架子,ING... 简单了解UnitOfWork 摘要: UnitOfWorkUnit Of Work模式,即工作单元,它是一种数据访问模式.它是用来维护一个由已经被业务修改(如增加.删除和更新等)的业务对象组成的列表.它负责协调这些业务对象的持久化工作及并发问题.那它是怎么来维护的一系列业务对象组成的列表持久化工作的呢?通过事务.Unit Of Work...阅读全文 posted @ 2014-09-28 00:41 Turbo Zhang 阅读(207) |…
出于学习和测试的简单需要,使用 Console 来作为 EF CORE 的承载程序是最合适不过的.今天笔者就将平时的几种使用方式总结成文,以供参考,同时也是给本人一个温故知新的机会.因为没有一个完整的脉络,所以也只是想起什么写点什么,不通顺的地方还请多多谅解. 本文对象数据库默认为 VS 自带的 LocalDB 1. Normal & Simple 先介绍一种最简单的构建方式,人人都会. 新建 Console 应用程序,命名自定 安装相关Nuget 包 //Sql Server Database…
优化方案 1.安装Application Initialization 这是在iis8出来后才有的,iis8内置的功能,而对于iis7.5也提供了一个扩展以支持这个功能. Application Initialization Module for IIS 7.5 在页面接近底部的地方,找到适合自己架构的安装链接 x86 for Windows 7 x64 for Windows 7 or Windows Server 2008 R2 安装这个iis模块后,在iis界面中并没有模块图标和配置界面,…
第1部分:http://www.cnblogs.com/cgzl/p/7637250.html 第2部分:http://www.cnblogs.com/cgzl/p/7640077.html 第3部分:http://www.cnblogs.com/cgzl/p/7652413.html Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratch 前三部分…
注:本文面向的是已经对EF的迁移功能有所了解,知道如何在控制台下进行相关命令输入的读者 问题 最近公司项目架构使用ABP进行整改,顺带想用EF的自动迁移代替了以前的手工脚本. 为什么要替代? 请看下图: 大版本就不用说了,每个小版本的发布我们都要准备一堆数据库升级脚本,这简直就是恶梦. 而使用ef它会自动帮我们完成数据库迁移,而我们只需要维护好迁移脚本就行了. 由于我们是线下项目,并且还有很多客户在使用老版本,所以我们不得不考虑既存表的问题. 而针对已存在的数据库,我们进行迁移时,总会出现Tab…
Github源码地址:https://github.com/solenovex/Building-asp.net-core-2-web-api-starter-template-from-scratch 前三部分弄完,我们已经可以对内存数据进行CRUD的基本操作,并且可以在asp.net core 2中集成Nlog了. 下面继续: Entity Framework Core 2.0 Entity Framework 是ORM(Object-Relational-Mapping).ORM是一种让你…