ef

EF延迟加载和懒加载

那年仲夏 提交于 2020-02-07 04:12:49
EF默认是延迟加载的 延迟加载就是刚开始只会读取当前实体对应表的数据 关联表的数据不会读取 只有下面条件用到了才会再去读取 所以可能会造成N次读取数据库 需要在实体的属性加virtual关键字 延迟加载要搭配 Include 加了include 会把关联表B的信息也查询出来 如果在where条件中已经用到了关联表B 那么可以不加include 懒加载就是一次性把所有的数据全部读取出来 包括关联表的所有数据 来源: https://www.cnblogs.com/jiangchengbiao/p/9889586.html

Entity Framework Core 1.1 升级通告

拜拜、爱过 提交于 2020-02-06 03:06:10
原文地址: https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译: 杨晓东(Savorboard) Entity Framework Core(EF Core)是一个轻量级的,可扩展和实体框架的跨平台版本。今天,我们宣布 Entity Framewor Core 1.1 正式可用了。 EF Core 和 .NET Core 遵循相同的发行周期。每2个月不断的改进和每6个月的新功能发布。这是自1.0的第一个功能版本。 请务必阅读位于这个帖子的末尾的升级到1.1这个章节,有相关升级到1.1版本重要信息。 1.1 版本有什么 1.1版本的重点是解决人们采用EF Core 中遇到的问题。这包括修正了bug,增加了一些的那些尚未在EF Core实现的重要功能。虽然我们已经取得了这方面的一些良好的进展,但是我们也承认EF Core 仍然不会是对大家来说最好的选择,更多详细信息可以看这篇 EF Core和EF6.x比较 。 Bug修复 在1.1版本有包含超过100个bug的修复。参见 EF Core 1.1 版本说明 了解更多详情。 改进LINQ翻译 在1.1版本中,我们在提高Linq 对 EF Core 的支持取得了良好的进展。这使得更多的查询成功执行

Moon.Orm与其他Orm的技术对比

ⅰ亾dé卋堺 提交于 2020-02-02 16:59:21
有时候在思考大家为什么喜欢EF,为什么又出现这么多的Orm,为什么Nhiberate被人许多人接收又被许多人拒绝 最后发现结论:萝卜白菜各有所爱、适合自己的就是最好的. EF 微软团队支持(可谓强大的后盾) Linq lambda支持、可谓正统 坑多、性能欠佳、 多数据源及多数数据库变动支持不是很方便 Nhibernate 国外第三方支持 历史悠久( java hibernate),后续版本支持LINQ 使用麻烦、配置一堆、学习成本大 Moon.Orm 性能卓越 便捷易用 多数据源、多数据支持、.NET2.0原生支持 不支持Linq,因为和EF不是一个设计思路,但MQL便捷易用、灵活高效.同样提供MQL智能感知型的查询语言 其他的不用多说,我们就简单介绍一下 来源: https://www.cnblogs.com/humble/p/3426888.html

十分钟轻松让你认识Entity Framework 7

蓝咒 提交于 2020-01-25 18:12:52
EF7不是在EF6上更新,而是完全重写了。它完全支持.NET Core runtime,也就是说以后你可以在Mac或者是Linux机器上使用EF了。 https://github.com/nicholaspei/OrchardNoCMS 我还在调研使用哪个ORM或者Micro ORM。Massive或者Dapper都不太适合,因为他们都依赖于System.Data,所以跨平台是个问题。 目前准备先使用EF作为一个实现,底层是一个很高的抽象接口,以后如果有合适的轻量级ORM,可以再替换。 回到正题,EF7比较大的变化: a.只支持Code-First或者Code,不再支持图形界面的生成。 b.支持关系型数据库。 c.跨平台。 1.开始安装EF7的包。 按照之前两篇文章介绍的,使用kpm来安装ef7使用Sql Server作为存储的实现(你可以在*inux平台使用EntityFramework.InMemery去存储数据)。 安装完成后,可以看到project.json已经改变。 为了更方便的使用EF,EF团队给我们开发了一个命令包,你可以安装这个命令包来轻松创建数据访问的代码。下面的命令来安装EntityFramework.Commands 2.使用命令来生成代码。 这块儿算是比较酷的,相对于之前版本的.NET,这一点儿算是很好的学习别的语言亮点。 下面我们需要编辑一下project

4.翻译系列:EF 6 Code-First默认约定(EF 6 Code-First系列)

坚强是说给别人听的谎言 提交于 2020-01-14 21:17:32
原文地址: http://www.entityframeworktutorial.net/code-first/code-first-conventions.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 Code-First系列) 4.翻译系列:EF 6 Code-First默认约定(EF 6 Code-First系列 ) 5.翻译系列:EF 6中数据库的初始化(EF 6 Code-First 系列 ) 6.翻译系列:EF 6 Code-First中数据库初始化策略(EF 6 Code-First系列 7.翻译系列:EF 6中的继承策略(EF 6 Code-First 系列 ) 8.翻译系列: EF 6中配置领域类(EF 6 Code-First 系列 ) 9.翻译系列:EF 6以及EF Core中的数据注解特性(EF 6 Code-First系列) 9.1 翻译系列:数据注解特性之----Table【EF 6 Code-First 系列】 9.2 翻译系列:数据注解特性之---Column【EF 6 Code First系列】 9.3

EF Core For Oracle11中Find FirstOrDefault等方法执行失败

吃可爱长大的小学妹 提交于 2020-01-13 16:47:40
问题描述 最近在使用ef core连接oracle的发现Find、FirstOrDefault、Skip Task分页等等方法执行失败。使用的是docker安装的oracle11,错误如下图: 解决办法 使用builder.UseOracleSQLCompatibility("11")方法来指定oracle版本。 来源: https://www.cnblogs.com/DCLi/archive/2020/01/13/12187782.html

EF 导航属性的使用

99封情书 提交于 2020-01-11 22:35:54
//1 默认情况下,导航属性是延迟查询; //条件是virtaul属性+默认配置 using ( JDDbContext dbContext = new JDDbContext ( ) ) { var companyList = dbContext . Set < Company > ( ) . Where ( c = > c . Id < 20 ) ; foreach ( var company in companyList ) //只差company { Console . WriteLine ( company . Name ) ; foreach ( var user in company . Users ) //再去查用户 { Console . WriteLine ( user . Name ) ; } } } //2 关闭延迟加载,子表数据就没了 using ( JDDbContext dbContext = new JDDbContext ( ) ) { dbContext . Configuration . LazyLoadingEnabled = false ; //关闭延迟查询 var companyList = dbContext . Set < Company > ( ) . Where ( c = > c . Id < 20 ) ; foreach (

Entity Framework 乐观并发控制

六月ゝ 毕业季﹏ 提交于 2020-01-08 08:11:25
一、背景   我们知道,为了防止并发而出现脏读脏写的情况,可以使用 Lock语句 关键字,这属于悲观并发控制的一种技术,,但在分布式站点下,锁的作用几乎不存在,因为虽然锁住了A服务器的实例对象,但B服务器上的锁是不知道的A服务器上锁的情况的,所以,面对分布式站点、单一数据库这种架构,我们可以使用EntityFramework的乐观并发控制来解决这个问题,EF对并发控制有不管控和乐观并发控制两种,默认情况是不管控,但EF不支持悲观并发。 lock 确保当一个线程位于代码的临界区时,另一个线程不进入临界区。如果其他线程试图进入锁定的代码,则它将一直等待(即被阻止),直到该对象被释放。 二、悲观并发和乐观并发 悲观并发:比如有两个用户A,B,同时登录系统修改一个文档,如果A先进入修改,则系统会把该文档锁住,B就没办法打开了,只有等A修改完,完全退出的时候B才能进入修改。 乐观并发:同上面的例子,A,B两个用户同时登录,如果A先进入修改紧跟着B也进入了。A修改文档的同时B也在修改。如果在A保存之后B再保存他的修改,此时系统检测到数据库中文档记录与B刚进入时不一致,B保存时会抛出异常,修改失败。 乐观并发的基本出发点是:当保存数据的时候抱着一种乐观的态度,不期望发生并发冲突,即使万一发生并发冲突,也能捕捉到冲突异常,然后根据策略解决冲突,而解决冲突的方式一般分为Client wins

MVC5 + EF6 完整入门教程三

旧街凉风 提交于 2020-01-02 06:48:01
期待已久的EF终于来了。 学完本篇文章,你将会掌握基于EF数据模型的完整开发流程。 本次将会完成EF数据模型的搭建和使用。 基于这个模型,将之前的示例添加数据库查询验证功能。 文章提纲 概述 & 要点 详细步骤 总结 概述 & 要点 下面是本文要点,正文部分会有详细介绍。 EF架构图 新建基于EF的Data Model的约定 关于ORM的重要概念,和传统方式开发的区别 EF开发的整体过程 详细步骤 新建文件夹,规划好代码摆放位置 创建相关类 (Data Model) 创建 Database Context 创建Initializer, 使用EF初始化数据库,插入示例数据 完成数据库查询验证 新建文件夹,规划好代码摆放位置 根目录下新建一个 ViewModels 文件夹。 Models 文件夹里面存放对应于数据库表的实体。 View 中需要显示的数据和 Models 中实体模型不一定能对应上, 因此需要专门给 View 使用的自定义数据模型,我们称之为ViewModel , 放在 ViewModels 文件夹里面。 根目录下新建一个 DAL 文件夹。 DAL 放置数据访问相关类。 NOTE 本文中放AccountContext.cs, AccountInitializer.cs 创建相关类(Data Model) 为了更加贴近真实情况,我们针对用户建立三个相关的类。 SysUser,

MVC5 + EF6 完整入门教程三

亡梦爱人 提交于 2020-01-02 06:47:39
原文: MVC5 + EF6 完整入门教程三 期待已久的EF终于来了。 学完本篇文章,你将会掌握基于EF数据模型的完整开发流程。 本次将会完成EF数据模型的搭建和使用。 基于这个模型,将之前的示例添加数据库查询验证功能。 文章提纲 概述 & 要点 详细步骤 总结 概述 & 要点 下面是本文要点,正文部分会有详细介绍。 EF架构图 新建基于EF的Data Model的约定 关于ORM的重要概念,和传统方式开发的区别 EF开发的整体过程 详细步骤 新建文件夹,规划好代码摆放位置 创建相关类 (Data Model) 创建 Database Context 创建Initializer, 使用EF初始化数据库,插入示例数据 完成数据库查询验证 新建文件夹,规划好代码摆放位置 根目录下新建一个 ViewModels 文件夹。 Models 文件夹里面存放对应于数据库表的实体。 View 中需要显示的数据和 Models 中实体模型不一定能对应上, 因此需要专门给 View 使用的自定义数据模型,我们称之为ViewModel , 放在 ViewModels 文件夹里面。 根目录下新建一个 DAL 文件夹。 DAL 放置数据访问相关类。 NOTE 本文中放AccountContext.cs, AccountInitializer.cs 创建相关类(Data Model) 为了更加贴近真实情况