![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
ADO.NET 和 Entity Framework
文章平均质量分 73
ADO.NET的名称起源于ADO(ActiveX Data Objects),是一个COM组件库,用于在以往的Microsoft技术中访问数据。之所以使用ADO.NET名称,是因为Microsoft希望表明,这是在NET编程环境中优先使用的数据访问接口.
.NET跨平台
比较认真。编程就是算法和数据结构,算法和数据结构是编程的灵魂。
展开
-
Entity Framework应用:使用LINQ操作
LINQ,全称是(集成语言查询),是.NET语言中查询数据的一种技术。是一种机制,它促进了使用LINQ对概念模型的查询。因为LINQ是声明式语言,它让我们聚焦于我们需要什么数据而不是应该如何检索数据。在实体数据模型之上提供了一个很好的抽象,所以我们可以使用LINQ来指定检索什么数据,然后会处理访问数据库事宜,并为我们取到必要的数据。转载 2023-08-09 22:11:29 · 415 阅读 · 0 评论 -
EntityFramwork 链接各类型数据库
提供postgresql的ADO模型,要匹配:.net 以及 2,3 的版本。1、安装插件 Npgsql PostgreSQL Integration。1、安装插件 Npgsql PostgreSQL Integration。程序编译出错了,要保证程序能够正常运行的基础上,更新数据库cs文件。5.cmd->cd 进入工程文件.csproj所在的文件夹 ->(官方插件有问题,使用这个社区版本)6、cmd->cd 进入工程文件。2、安装 EF框架 无框架限制。4、安装 EF6 for。转载 2022-12-10 19:55:27 · 586 阅读 · 0 评论 -
那些与EF有关的错误认知
前言这是一个对话性的讨论,它讨论了一个严重的问题趋势,我发现在由初级团队到架构师团队的各种规模的组织中,EntityFramework的利用率都很高。这不是一个如何做的问题,这也不适合新手。如果有什么能激发您的想法,或者您对我提到的事情感到好奇,那么Google是您的朋友。这也是我的第一篇博客文章。欢迎批评。历史和功能介绍(按版本)首先,让我们简单回顾一下EF随时间推移推出的功能。这绝不是详尽无遗的,当然也不会通过对主要版本的更新列出所有内容。它只是提醒了迄今为止EF的故事。EF / EF 3.5转载 2022-03-12 20:48:59 · 254 阅读 · 0 评论 -
Entity Framework Code First 映射
Fluent API一千道一万,EF还是一个ORM工具,映射永远是最核心的部分。所以接下来详细介绍Code First模式下EF的映射配置。通过Code First来实现映射模型有两种方式Data Annotation和Fluent API。Data Annotation需要在实体类(我通常的称呼,一般就是一个Plain Object)的属性上以Attribute的方式表示主键、外键等映射信息。这种方式不符合解耦合的要求所以一般不建议使用。第二种方式就是要重点介绍的Fluent API。Fluen转载 2022-02-03 20:53:47 · 279 阅读 · 0 评论 -
那些与EF有关的错误认知
前言这是一个对话性的讨论,它讨论了一个严重的问题趋势,我发现在由初级团队到架构师团队的各种规模的组织中,EntityFramework的利用率都很高。这不是一个如何做的问题,这也不适合新手。如果有什么能激发您的想法,或者您对我提到的事情感到好奇,那么Google是您的朋友。这也是我的第一篇博客文章。欢迎批评。历史和功能介绍(按版本)首先,让我们简单回顾一下EF随时间推移推出的功能。这绝不是详尽无遗的,当然也不会通过对主要版本的更新列出所有内容。它只是提醒了迄今为止EF的故事。EF / EF 3.5转载 2021-11-20 22:23:42 · 187 阅读 · 0 评论 -
Entity Framework FluentAPI配置
Entity Framework Code First的默认行为是使用一系列约定将POCO类映射到表。然而,有时候,不能也不想遵循这些约定,那就需要重写它们。重写默认约定有两种方式:Data Annotations和FluentAPI。Data Annotations在功能上是Fluent API的子集,在一些映射场景下使用Annotations不能达到重写的目的,因此本篇文章中使用Fluent API配置属性。一、Fluent API配置属性Code First Fluent API通常情况下是在D转载 2021-10-04 16:49:45 · 307 阅读 · 0 评论 -
EntityFramework 实现In查询解决方案
东西比较简单,大家一看就明白,不多做解释,直接上代码public static class LinqExtend{ public static IQueryable<TSource> WhereIn<TSource, TKey>(this IQueryable<TSource> source, IEnumerable<TKey> source2, Expression<Func<TSource, TKey转载 2021-10-01 19:34:32 · 408 阅读 · 0 评论 -
Entity Framework 基础(二):查询数据库常用的两种方法(Contains/IsNullOrEmpty/Equals关键字只能用在查询数据库类文件)
方法一、查询List集合(建议采用)我们的思路是,先把数据,用lambda语句,按Contains/IsNullOrEmpty/Equals关键字从数据库文件,提取到类的集合。然后,再用Linq语句,从类的集合检索数据到另一个集合。在这里,建议采用这种方法,因为我在PatientInfoHistroryModel类统一定义每个属性都为string,然后直接用ToString()即可。 /// <summary> /// 查询 /// </sum转载 2021-10-01 19:31:10 · 526 阅读 · 0 评论 -
Entity Framework 基础(一):参考资料、三种模式(DataBase First/Model First/CodeFirst)、应用场景、优缺点
一、参考资料(简介)本系列,将介绍 实体框架EF(entity framework)。参考:https://www.cnblogs.com/wangboy91/p/6047905.html什么是EF框架 ?全称EntityFramework 官方点的解释是Entity Framework是ADO.NET 中的一套支持开发面向数据的软件应用程序的技术,是微软的一个ORM框架。ORM框架是什么东西?Object Relational Mapping 翻译过来就是对象关系映射。如果你无法理解这个东西。转载 2021-10-01 18:42:58 · 1399 阅读 · 0 评论 -
疑难杂症——EF+Automapper引发的查询效率问题解析
正文前言:前面总结了一些WebApi里面常见问题的解决方案,本来打算来分享下oData+WebApi的使用方式的,奈何被工作所困,只能将此往后推了。今天先来看看EF和AutoMapper联合使用的一个问题。最近两周一直在解决一个问题:使用Automapper将EF的Model转换成DTO的Model,数据量只有几百条,但是导航属性比较多,执行 Mapper.Map<List<TM_STATION>, List<DTO_TM_STATION>>(lstEFModel)转载 2021-09-11 14:04:11 · 1003 阅读 · 0 评论 -
Entity Framework 和 LINQ To SQL的区别
综述LINQ是一种语言集成查询,它包含了LINQ to SQL,LINQ to Objects,LINQ to XML,LINQ to Entities(Entity Framework两种查询方式之一,另外一种叫做Entity SQL)。Entity Framework 是一种ORM (Object Relational Mapping)框架,把关系型数据转换成对象的一种框架。LINQ to SQL是Linq最初提供的一种访问数据的方式,它允许你从SQL Server数据库获取数据。LINQ to转载 2021-09-08 23:58:48 · 701 阅读 · 0 评论 -
EF 和dapper的区别
EF:重量级ORM的代表优点:面向对象的方式操作数据库。能够摆脱sql,完全不用关心sql怎么写,可移植性强。EF支持和适配了所有流行的关系型数据库,并且是面向接口的设计,并对事物,缓存(一级缓存)有良好的封装及配置。支持code first。开发人员可以完全不用关心数据库,代码先行,极大的节约开发成本。开发效率非常高,结合linq,开发速度极快。可以跨数据库,只需要在配置文件中修改连接字符串就能轻松支持。与vs结果的比较好。缺点:比较复杂,学习曲线大。不适合统计查询系统,效率不转载 2021-09-05 20:41:34 · 1603 阅读 · 0 评论 -
LINQ TO SQL和Entity Framework 的关系 你了解多少?
1. LINQ TO SQL 和EF 特点:LINQ TO SQL和Entity Framework都是一种包含LINQ功能的ORM 也就是所谓的关系对象的映射。其中包括的有DBFrist Code Frist ModeL Frist 三种中方式 来进行和数据库之间的访问。只是形式不同而已本质没有什么区别。都是ORM 之间的转化。最终都是来进行访问底层的数据库的对象和服务。简单来说LINQ是为了满足不知道怎么操作数据库的程序员开发设计的,LinQ 可以让他们以一种面向数据对象的方式来思考,及转载 2021-09-02 23:59:06 · 373 阅读 · 0 评论 -
标准SqlHelper类
using System;using System.Data;using System.Xml;using System.Data.SqlClient;using System.Collections;namespace AdoNetAdvanced.Utilities{ /// <summary> /// SqlServer数据访问帮助类 /// </summary> public sealed class SqlHelper转载 2021-01-01 15:16:01 · 238 阅读 · 0 评论 -
Code First 中数据库初始化策略
Code First 中数据库初始化策略00.00 Code First 中支持 4 种数据库初始化策略CreateDatabaseIfNotExists这是默认的初始化程序。顾名思义,如果没有配置,它将创建数据库。但是,如果更改模型类,然后使用该初始化程序运行应用程序,那么它将抛出异常DropCreateDatabaseIfModelChanges如果您的模型类(实体类)已更改,则此初始化程序将删除现有数据库并创建新数据库。因此,当您的模型类更改时,您无需担心维护数据库模式Dro转载 2020-12-30 21:50:13 · 362 阅读 · 0 评论 -
SqlDataAdapter知识
SqlDataAdapter是 DataSet和 SQL Server之间的桥接器。SqlDataAdapter通过对数据源使用适当的Transact-SQL语句映射 Fill(它可填充DataSet中的数据以匹配数据源中的数据)和 Update(它可更改数据源中的数据以匹配 DataSet中的数据)来提供这一桥接。当SqlDataAdapter填充 DataSet时,它为返回的数据创建必需的表和列(如果这些表和列尚不存在)。简介但是,除非 MissingSchemaAction,否则这个隐式创建的架构转载 2020-12-10 10:28:32 · 592 阅读 · 0 评论 -
C# 两个datatable中的数据快速比较返回交集或差集
如果两个datatable的字段完全一致的话,可以直接使用Except,Intersect//与免打扰中的用户进行比较,筛选出可以正常接收推送的用户 var normalReceive = dtUser.AsEnumerable().Except(dtDND.AsEnumerable(), DataRowComparer.Default); //比对两个表的用户名一致的,保存username到list中 var intersectUser = dtUserPower.AsEnumerable转载 2020-05-22 00:00:41 · 3532 阅读 · 0 评论 -
Lamdba及DataTable AsEnumerable()的使用
Lamdba是延迟执行的,实际上什么都没有发生,当真正使用对象的时候(例如调用:First, Single, ToList….的时候)才执行。1.Where语句使用var var_dtTable = dtTable.AsEnumerable().Where<DataRow>(W => W["NAME"].ToString()=="张三"); int count = var_dtTable.Count<DataRow>();//获取dtTable中NAME为张三的个数转载 2020-05-21 23:47:02 · 1324 阅读 · 0 评论 -
SCOPE_IDENTITY()知识
SCOPE_IDENTITY()取得返回在当前会话中的任何表内所生成的最后一个标识值比如新增一条记录,获得插入记录的ID号var pramTotalRowCount = new SqlParameter("@PKID", SqlDbType.Int) { Direction = ParameterDirection.Output };var parameters = new[]{ ...转载 2020-04-30 13:52:59 · 1416 阅读 · 0 评论 -
EF性能优化
情况介绍在项目中,我用EF存储2W条数据时,花费竟然1小时20分钟左右,然后我只能搜肠刮肚想法优化……测试草图测试草图,仅供借鉴看,下面我会详细总结。 优化方法总结1.连接保持畅通意思是不要在需要的时候连接了不需要的时候断开,需要了又去连接(特殊情况除外),目的在于减少对数据库的操作。2.关闭EF的一些配置EF使用时,会在Config中配置,对于使用CRUD...转载 2018-06-08 20:52:04 · 1222 阅读 · 0 评论 -
EntityFramework 优化建议
Entity Framework目前最新版本是6.1.3,当然Entity Framework 7 目前还是预览版,并不能投入正式生产环境,估计正式版16年第一季度会出来,了解过EF7的部分新特性后,还是狠狠期待一下滴。EF性能问题一直为开发者所诟病,最让人纠结的也是这块,所以此次我也来谈谈EF的性能优及建议。既然是把优化点列举出来,可能有些地方关于底层的知识就不会介绍的太深刻,权当抛砖引玉吧...转载 2018-06-09 16:01:14 · 1402 阅读 · 1 评论 -
MVC 5 + EF 6(七)【加载相关数据】
1.延迟(Lazy)加载、预先(Eager)加载、显式(Explicit)加载:EF加载相关数据到实体导航属性有以下几种方式:延迟加载:当实体第一次读取时,相关数据没有加载。当第一次试图访问导航属性时,所需的导航数据自动加载。这导致多条查询语句被发送到数据库:一条查询实体本身,一条查询实体相关数据。DbContext类默认启用延迟加载。 Lazy_loading_example预先加...转载 2018-07-10 22:22:05 · 334 阅读 · 0 评论 -
C# 数据库并发的解决方案(通用版、EF版)
自ASP.NET诞生以来,微软提供了不少控制并发的方法,在了解这些控制并发的方法前,我们先来简单介绍下并发!并发:同一时间或者同一时刻多个访问者同时访问某一更新操作时,会产生并发!针对并发的处理,又分为悲观并发处理和乐观并发处理所谓悲观/乐观并发处理,可以这样理解:悲观者认为:在程序的运行过程中,并发很容易发生滴,因此,悲观者提出了他们的处理模式:在我执行一个方法时,不允许其他访问者介入这...转载 2019-01-01 14:36:18 · 2086 阅读 · 2 评论 -
Entity Framework 架构图
Entity Framework的全称是ADO.NET Entity Framework,是微软开发的基于ADO.NET的ORM(Object/Relational Mapping)框架。Entity Framework的主要特点:支持多种数据库(Microsoft SQL Server, Oracle, and DB2);强劲的映射引擎,能很好地支持存储过程;提供Visual...转载 2019-09-01 18:54:01 · 616 阅读 · 0 评论 -
EntityFramework Core不得不注意的性能优化意外收获,你会用错?
前言这两天在着实研究EF Core项目当中对于一些查询也没实际去检测,于是想着利用放假时间去实际测试下,结果本文就出来了,too young,too simple,后续博主会从底层翻译表达式树弄起,来从源头了解EF Core,通过本文你会明白不是EF Core团队没做性能优化,而是你根本就没用过而且正在倒退。 EntityFramework Core性能优化初探简单粗暴直接上代码,给出上...转载 2018-06-08 17:27:18 · 5133 阅读 · 1 评论 -
EntityFramework 学习【Entity Lifecycle 实体生命周期】
当我们执行CRUD(Create,Read,Update,Delete)操作之前,最重要的是搞明白实体的生命周期和EntityFrameword怎么管理实体在一个实体的生命周期里,每个实体都有一个实体状态(基于上下文DbContext执行的操作),实体状态是一个枚举类型System.Data.Entity.EntityState包含以下值:1.Added2.Deleted3.M...转载 2018-06-08 17:10:16 · 591 阅读 · 0 评论 -
Entity Framework 4 in Action读书笔记——第六章:理解实体的生命周期
我们先从分析实体的生命周期和它的状态开始。 实体生命周期在其生存期期间,一个实体只有一个状态。在了解如何检索状态之前,先看看什么是实体状态。实体状态就是声明为以下值的System.Data.EntityState类型的枚举:Added——实体标记为added。 Deleted——实体标记为deleted。 Modified——实体已经被修改。 Unchanged——实体还没有被修改...转载 2018-06-08 16:40:00 · 843 阅读 · 0 评论 -
EF上下文对象线程内唯一性与优化
在一次请求中,即一个线程内,若是用到EF数据上下文对象,就创建一个,这也加是很多人的代码中习惯在使用上下文对象时,习惯将对象建立在using中,也是为了尽早释放上下文对象, 但是如果有一个业务逻辑调用了多个dal层的方法,交互数据库多次,这样效率会低一些,而且在使用EF的情况下,我们通常把SaveChange这个方法提到业务逻辑层(下文中会提到),不保证同一个业务逻辑使用的是同一个上下文对象,事务转载 2018-01-02 16:18:32 · 1337 阅读 · 0 评论 -
EF6 CodeFirst 多个DbContexts
Models文件夹Student.csusing System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace EFCodeFirstSample.Models{ public class Student {原创 2017-09-11 14:49:16 · 2170 阅读 · 2 评论 -
EF6中CodeFirst使用MySQL
Program.cs代码:using System;using System.Collections.Generic;using System.Data.Entity;using System.Linq;using System.Text;using System.Threading.Tasks;namespace MySQLuse{ class Program原创 2017-09-14 16:01:52 · 2070 阅读 · 0 评论 -
EF中DataContext以及对应实体的生命周期
Enitity Framework的文章非常多,而且使用起来也非常简单。当然一旦遇到一个异常时,就非常让人头疼。最近一直用EF,遇到一些问题,所以分享出来对大家或许有些帮助。在这里不会研究源码,只说原理,并分享一些最佳实践的代码。有说的不对的地方,请过路人指正。DataContext对象应该生成多少个?当我们new一个新的DataContext对象并从数据库获取相关实体时,意味着DataContex转载 2017-08-26 23:35:48 · 2043 阅读 · 0 评论 -
利用Asp.net管道优化EntityFramework生命周期管理
HttpApplication是整个ASP.NET的核心,在第一次请求到抵达后,ASP.NET会创建大量HttpApplication对象置于对象池中并保持其存活。在后续请求的时候,ASP.NET会查看对象池中有无空闲HttpApplication对象,若有则直接使用,若都处于繁忙状态则重新创建。这也就是为什么网站第一次访问的速度很慢。HttpApplication会不断处理ASP.NET分发给他的转载 2017-08-26 23:41:42 · 728 阅读 · 0 评论 -
EF使用两个DbContext的例子
类图:UserModel.cs实体类using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.Linq;using System.Text;using System.Threading.Tasks;namespace MySQL{ p原创 2017-09-13 17:28:45 · 10086 阅读 · 0 评论 -
使用EF CodeFirst根据实体类生成数据库
EF CodeFirst 创建数据库很多时候,一个项目只有模型层或者某几个模型类,没有数据库脚本,想创建数据库来运行项目,只能一个个敲SQL建表语句或图形化操作,十分耗时间,也很费脑细胞,最近发现可以利用EF 里的自动创建数据库的功能,可以节约不少时间,数据库创建后可能跟实际数据库细节方面有所偏差,但的确节省不少劳力,数据库生成后,我们只需要修改字段类型,删除不必要的表与表之间的关系,添加一部原创 2016-08-26 21:29:40 · 12492 阅读 · 2 评论 -
LINQ TO SQL和Entity Framework 的关系你了解多少?
LINQ TO SQL 和EF 特点: LINQ TO SQL和Entity Framework都是一种包含LINQ功能的ORM 也就是所谓的关系对象的映射。其中包括的有DBFrist Code Frist ModeL Frist 三种中方式 来进行和数据库之间的访问。只是形式不同而已本质没有什么区别。都是ORM 之间的转化。最终都是来进行访问底层的数据库的对象 和服务。转载 2018-01-12 14:04:43 · 2036 阅读 · 0 评论 -
Entity Framework返回IEnumerable还是IQueryable?
在使用EF的过程中,我们常常使用repository模式,本文就在repository层的返回值是IEnumerable类型还是IQueryable进行探讨。一, 什么是Repository模式?Repository是隔离在数据访问层和业务逻辑层之间的。它提供业务逻辑各种对象,使得业务逻辑代码不需要关心数据是如何存储和获取的。下图,是MVC中使用Repository模式的图。Controller调用转载 2018-01-12 14:22:49 · 695 阅读 · 0 评论 -
Entity Framework优缺点及使用方法总结
Entity Framework是MS提供的一个ORM框架,它旨在为小型应用程序中数据层的快速开发提供便利。nuget上185W多的下载量,说明.Net开发人员还是比较喜欢用EF的。但是EF在提供了便利性的同时也有许多缺点,以下就是我认为不应该应用EF的场景:非SQL Server数据库且无该数据库的DataProvider高性能要求。在进行一些复杂查询的情况下,EF的性能表现不太好,而开发人员转载 2018-02-08 21:46:56 · 18675 阅读 · 0 评论 -
Entity Framework版本历史概览
EF版本 .net framework和IDE版本 主要功能 EF(or EF3.5) Visual Studio 2008 SP1 (.NET 3.5 SP1) 基本的O/R映射支持,使用DB First开发模式 EF 4 Visual Studio 2010 (.NET 4.0) 支持POCO实体 延迟加载 ...转载 2018-05-29 20:00:22 · 1636 阅读 · 0 评论 -
重新认识了下Entity Framework
Entity Framework是一个对象关系映射O/RM框架。 Entity Framework让开发者可以像操作领域对象(domain-specific objects)那样操作关系型数据(relational data)。 Entity Framework减少了大部分通常需要编写的数据操作代码。 Entity Framework中可以使用LINQ来查询数据,使用强类型(s...转载 2018-06-12 17:14:30 · 429 阅读 · 0 评论 -
浅析EF性能优化
数据Load延迟加载:当实体第一次读取时,相关数据没有加载;当第一次试图访问导航属性时,所需的导航数据自动加载,EF默认使用这种方式加载数据,尽量使用预先加载和显示加载。优点:加载数据快缺点:数据库交互多次预先加载:当读取实体时,相关数据同时读取。这通常会导致一个连接查询,查询所有所需的数据,使用Include方法指定预先加载。优点: 数据库交互少缺点:加载实体多,数据...转载 2018-06-12 13:11:44 · 1268 阅读 · 0 评论