EntityFramework教程系列
文章平均质量分 90
苍狼_2001
程序员之所以犯错误,不是因为他们不懂,而是因为他们自以为什么都懂。
展开
-
Entity Framework Code First数据库连接
1. 安装Entity Framework 使用NuGet安装Entity Framework程序包:工具->库程序包管理器->程序包管理器控制台,执行以下语句:PM> Install-Package EntityFramework2. Entity Framework数据库连接配置 安装了Entity Framework之后,会自动添加App.config原创 2017-06-30 10:04:37 · 292 阅读 · 0 评论 -
EntityFramework之原始查询及性能优化(六)
前言在EF中我们可以通过Linq来操作实体类,但是有些时候我们必须通过原始sql语句或者存储过程来进行查询数据库,所以我们可以通过EF Code First来实现,但是SQL语句和存储过程无法进行映射,于是我们只能手动通过上下文中的SqlQuery和ExecuteSqlCommand来完成。SqlQuerysql语句查询实体 通过DbSet中的SqlQuery方法来转载 2017-06-30 18:58:58 · 2262 阅读 · 0 评论 -
Entity Framework中使用IEnumerable<T>、IQueryable<T>及IList<T>的区别
1. IEnumerable<T> IEnumerable<T> :对于在内存中集合上运行的方法,返回的可枚举对象将捕获传递到方法的参数。在枚举该对象时,将使用查询运算符的逻辑,并返回查询结果。 IEnumerable<T>在.Net2.0引入。 IEnumberable使用的是LINQ to Object方式,将AsEnumerable()时对应的所有记...原创 2017-07-01 12:33:41 · 902 阅读 · 0 评论 -
context.Database.SqlQuery<>()查询
public class Student { public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } }ctx.Database.SqlQuery("select Name,Age from stud原创 2017-07-24 17:34:47 · 8685 阅读 · 0 评论 -
EF4.0和EF5.0增删改查的写法区别及执行Sql的方法
EF4.0和EF5.0增删改查的写法区别public T AddEntity(T entity) { //EF4.0的写法 添加实体 //db.CreateObjectSet().AddObject(entity); //EF5.0的写法 db.Entry(entity).State = EntityState.Added;转载 2017-09-13 09:31:04 · 296 阅读 · 0 评论 -
EF中Add()和Attach()两种添加数据方法的区别
最近在开发一个项目,在实现某个模块数据的插入操作时(底层数据库的交互采用的是EF),发现无论如何数据都不能插入成功,把数据拷贝出来放到数据库中执行Sql语句时却能正确插入,下面给出代码片段[csharp] view plain copypublic int InsertWithFundInfo(F_WithFunding_Info withi转载 2017-10-16 12:48:55 · 1521 阅读 · 0 评论 -
批量操作可显著提升Entity Framework的性能
当数据库管理员考虑高性能数据加载时,他们会考虑批量操作,这明显是Entity Framework不具备的功能。但也不一定就是如此。近日,我们采访了ZZZ项目的Jonathan Magnan,谈了他们新提供的功能。InfoQ:开发人员已经可以告诉Entity Framework将批量记录同时上传。那么为什么还需要批量操作呢?Jonathan Magnan:很简单,为了获得巨大的性转载 2017-10-16 14:29:54 · 385 阅读 · 0 评论 -
ObjectContext的处理机制
1、ObjectContext的处理机制ObjectContext是Entity Framework封装了数据库访问的上下文,以及实体的映射关系元数据信息等。EF帮我们封装好了这么一个统一的接口。让我们所有的操作都只通过这个一个实体上下文就可以实现了增删查改等所有对应数据库的操作。当然,我们要了解EF的生成SQL的机制我们才能更好的使用EF帮我们生成效率更高的SQL脚本。看一个实例原创 2017-11-02 09:55:20 · 1985 阅读 · 0 评论 -
优雅的使用DbContext
跟踪实体对象状态在CRUD上篇和中篇谈到,为了实现提取和更新数据的功能,EF必须使用某种机制来跟踪实体对象,以便依据对象当前状态生成相应的SQL命令。这里的关键是区分清楚内存中的数据实体对象和数据库中的记录。当程序运行时,位于内存中的EF数据实体可以处于以下五种状态之一:1. Added: 实体对象是新创建的,数据库中没有相应的记录。2.原创 2017-11-02 10:00:53 · 1502 阅读 · 0 评论 -
DbContext 和ObjectContext两者的区别
一是ObjectContext是一种模型优先的开发模式,DbContext是代码优先的开发模式。这是两者最根本的区别。同时两者之间可以相互转换:下面给出转换的例子1 DbContext转为ObjectContextusing System.Data.Entity.InfrastructureObjectContext context =((IObjectCon原创 2017-11-02 10:02:27 · 873 阅读 · 0 评论 -
EF操作存储过程调用
1、执行返回数据列表型 CREATE PROCEDURE [dbo].[SP_ManageForumGroupsPostRecycle]@userId VARCHAR(128), --用户IDASBEGINSET NOCOUNT ON;DECLARE @rowId INT SET @rowId=( @page - 1 ) * @pageSize;----列表数据SELECT G.Id,P....原创 2018-05-16 14:38:04 · 229 阅读 · 0 评论 -
Entity Framework技术系列之5:延迟加载
前言延迟加载也可以叫做按需加载,可以分两方面来理解,一方面指暂时不需要该数据,不用在当前马上加载,而可以推迟到使用它时再加载;另一方面指不确定是否将会需要该数据,所以暂时请不要加载,待确定需要后再加载它。延迟加载是一种很重要的数据访问特性,可以有效地减少与数据源的交互(注意,这里所提的交互不是指交互次数,而是指交互的数据量),从而提升程序性能。接下来,我将针对上一篇文章中提出的DI转载 2017-06-30 17:44:24 · 371 阅读 · 0 评论 -
Entity Framework技术系列之2:三种开发模式实现数据访问
前言Entity Framework支持Database First、Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样。三种开发模式各有优缺点,对于程序员没有哪种模式最好,只有哪种模式更适合。接下来我将分别使用这三种开发模式实现同一数据库模型的数据持久化功能。希望通过实践能帮助你找到更适合你的开发模式。 Database转载 2017-06-30 17:39:01 · 462 阅读 · 0 评论 -
Entity Framework Code First属性映射约定
Entity Framework Code First与数据表之间的映射方式有两种实现:Data Annotation和Fluent API。本文中采用创建Product类为例来说明tity Framework Code First属性映射约定的具体方式。1. 表名及所有者 在默认约定的情况下,Entity Framework Code First创建的表名是根据类名的英语复数形原创 2017-06-30 10:07:47 · 642 阅读 · 0 评论 -
Entity Framework 教程
目录预备知识 2LINQ技术 2LINQ技术的基础 - C#3.0 2自动属性 2隐式类型 2对象初始化器与集合初始化器 3匿名类 3扩展方法 4Lambda表达式 4.NET中的数据访问 4DataSet方案 5改进的的DataSet方转载 2012-04-24 14:55:37 · 345 阅读 · 0 评论 -
Entity Framework Code First关系映射约定
1、外键列名默认约定 2、一对多关系 3、一对一关系 4、多对多关系 5、一对多自反关系 6、多对多自反关系 在关系数据库中,不同表之间往往不是全部都单独存在,而是相互存在关联的。两个不同表之间可以存在外键依赖关系,一个表自身也可以有自反关系(表中的一个字段引用主键,从而也是外键字段)。 Entity Framewor原创 2017-06-30 15:29:53 · 417 阅读 · 0 评论 -
Entity Framework Code First执行SQL语句、视图及存储过程
1、Entity Framework Code First查询视图 Entity Framework Code First目前还没有特别针对View操作的方法,但对于可更新的视图,可以采用与Table一样的方式进行插入、修改、删除及查询。在实际的项目过程中,视图多只用于进行查询。 Entity Framework Code First查询视图示例: 使用到的表及视图结原创 2017-06-30 15:58:29 · 1433 阅读 · 0 评论 -
Entity Framework Code First使用DbContext查询
DbContext、DbSet及DbQuery是Entity Framework Code First引入的3个新的类,其中DbContext用于保持数据库会话连接,实体变化跟踪及保存,DbSet用于暂存实体类的变化跟踪,DbQuery用于提供查询跟你。 1、使用Set查询全部记录 使用DbContext查询首先需要保证DbContext的实例在使用完之后对资源的释放,释放Db转载 2017-06-30 16:09:43 · 504 阅读 · 0 评论 -
Entity Framework Code First实体关联数据加载
在项目过程中,两个实体数据之间在往往并非完全独立的,而是存在一定的关联关系,如一对一、一对多及多对多等关联。存在关联关系的实体,经常根据一个实体的实例来查询获取与之关联的另外实体的实例。 Entity Framework常用处理数据关联加载的方式有3种:延迟加载(Lazy Loading)、贪婪加载(Eager Loading)以及显示加载(Explicit Loading)。转载 2017-06-30 16:42:05 · 292 阅读 · 0 评论 -
Entity Framework Code First添加修改及删除单独实体
对于一个单独实体的通常操作有3种:添加新的实体、修改实体以及删除实体。 1、添加新的实体 Entity Framework Code First添加新的实体通过调用DbSet.Add()方法来实现。using (var ctx = new PortalContext()){ var province = new Province {转载 2017-06-30 17:16:42 · 1368 阅读 · 0 评论 -
Entity Framework Code First添加修改及删除外键关联实体
1、添加外键关联实体 1>、添加新的Province及City实体using (var ctx = new PortalContext()){ var city1 = new City { CityNo = "10010", CityName = "测试城市1" }; var city2 = new Cit转载 2017-06-30 17:19:16 · 1070 阅读 · 0 评论 -
Entity Framework Code First实体对象变动跟踪
Entity Framework Code First通过DbContext.ChangeTracker对实体对象的变动进行跟踪,实现跟踪的方式有两种:变动跟踪快照和变动跟踪代理。 变动跟踪快照:前面几篇随笔的示例都是通过实体对象变动快照跟踪来实现数据操作的,POCO模型不包含任何逻辑去通知Entity Framework实体类属性的变动。Entity Framework在第一次对象加载转载 2017-06-30 17:27:25 · 302 阅读 · 0 评论 -
Entity Framework 6 Code First新特性:支持存储过程
Entity Framework 6提供支持存储过程的新特性,本文具体演示Entity Framework 6 Code First的存储过程操作。Code First的插入/修改/删除存储过程 默认情况下下,Code First配置对全部实体的插入/修改/删除操作均直接针对表进行。从EF6开始可以配置对全部或部分实体来选择使用存储过程。1. 基本实体映射1.1转载 2017-06-30 17:34:01 · 260 阅读 · 0 评论 -
Entity Framework(EF) 直接执行数据库命令并返回 DataTable 数据参数化 SQL 语句
Entity Framework是微软出品的高级ORM框架,大多数.NET开发者对这个ORM框架应该不会陌生。本文主要罗列在.NET(ASP.NET/WINFORM)应用程序开发中使用Entity Framework直接执行SQL语句或者存储过程的一些代码片段。具体请见以下正文:1.使用SqlQuery在已知的实体上执行SQL查询语句 1 2 3 4 ...转载 2018-05-16 18:34:28 · 1514 阅读 · 0 评论