EF版本:6.0.0 EF对大量数据或多表连接一次操作耗时较大,或要求响应时间尽可能小,因此采用EF框架执行SQL语句的方案 1DbContext.Database 这个类包含了大量的操作方法,见截图:...查询方法举例: using (CustomDbContext db = new CustomDbContext()) { string sql =..."delete from collectionusers where Id=@id"; var num = db.Database.ExecuteSqlCommand(sql..., new MySqlParameter("@id", 322)); } 注意操作Mysql数据库,一定要是有MySqlParameter而不能使用SqlParameter,使用...`User_Id`)VALUES(@insertTime,@cid, @uid)"; var num = db.Database.ExecuteSqlCommand(sql
1、无需先查询数据的修改方法 // 将创建的data实体添加到ObjectContext db.Data.Attach(data); // 手动设置状态为修改 ...
一.前言 Entity Framework(后面简称EF)作为微软家的ORM,自然而然从.NET Framework延续到了.NET Core。...以前我也嫌弃EF太重而不去使用它,但是EF Core(Entity Framework Core)已经做了很多性能优化,还有一些增加新特性,吸引了我去使用它。....NET Core控制台程序 2.通过Nuget安装 EF Core Sql Server 请安装 Microsoft.EntityFrameworkCore.SqlServer MySql/MariaDB...五.EF Core迁移更新到生产环境 EF Core将迁移更新到生产环境可以使用Script-Migration命令生成sql脚本,然后到生产数据库执行 语法 Script-Migration [-From...语句 生成SQL语句如下图: ?
但是在EF中它又可以对映射关系进行控制,相比较Fluent API使用起来要简单一些。...{ get; set; } } public Name Name { get; set; } 对于实体关系对应的数据表关系,无非“0:1,1:1,0:N,1:N,N:N”这几种,可以使用导航属性中的数据类型来表示...,0…1端使用单实体类型表 示,N端使ICollection集合类型表示。...对于单实体端,默认是可为空的,即为0关系,如果要设置为1关系,要使用 [Required]标签来进行标记。但对于一对一中的关系主体与依赖对象确无法做更细节的控制。...注意:DataAnnotations可以同时在同一个类后者属性上使用多个标记属性,上面的例子中对于每个类或属性只使用了一个单独的标记属性是为了说明起来更加简单;另外声明的例子中同时使用“ConcurrencyCheck
约定,类似于接口,是一个规范和规则,使用Code First 定义约定来配置模型和规则。在这里约定只是记本规则,我们可以通过Data Annotaion或者Fluent API来进一步配置模型。...EF中定义关系要使用到导航属性,通过导航属性可以定义多个模型之间的关系。大部分情况下我们会将导航属性和外键属性结合在一起使用。...DbContext { protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity...Street; public string Region; public string Country; } } 四、自定义约定 当EF提供的默认约定都不符合我们要求的时候,我们可以使用自定义约定
从Entity Framework 4开始在ObjectContext对象上提供了2个方法可以直接执行SQL语句:ExecuteStoreQuery 和 ExecuteStoreCommand。...1、使用ExecuteStoreQuery :通过sql查询返回object实体,有有许多需要注意: 1.sql = "select * from Payment where Vendor= @vendor...PaymentId ,Amount from Payment ” 这样使用context.ExecuteStoreQuery(sql, args);那么会报异常,因此需要将Vendor...相关文章: Entity Framework 和 AppFabric 中的二级缓存 对Entity Framework应用二级缓存 Performance Considerations for Entity...Framework 5 https://github.com/ChrisNanda/EntityFramework.Cache Entity Framework - Second Level Caching
零、什么是Entity Framework Entity Framework (简称EF),是.NET的 Object/Relational Mapping 实体框架(简称ORM),可以在 SQL Server...可以将数据作为业务对象和实体进行操作,使用LINQ进行查询,使用C#进行操作和检索。...一、领域建模方式 Entity Framework 有三种领域建模方式:Code First、Model First和Data First 1....POCO中的C是指 .NET Framework公共语言运行时(Common Language Runtime,CLR)中的一个简单对象。...Code First 优点如下: 可以创建一个更富有逻辑、更灵活的应用程序; 因为没有自动生成难以修改的代码,所以我们可以对代码完全控制; 只需要定义映射,其余一切交给Entity Framework
Entity Framwework 6 设置和使用索引,是一个比较 egg 疼的事情,为什么这么说呢?...因为Entity Framwework 6的不同版本有不同的设置和使用方法,按照版本来划分,有三种方法: EF6 方法 EF6.1.x方法 EF6.2.x方法 EF6 EF6中设置索引比较麻烦,我们需要先进行...x 该版本定义索引的方法如下: public virtual void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity
Entity FrameWork概述 Entity Framework(EF)是一个开源的“对象/关系映射(ORM:Object Relational Mapping)”框架,使应用程序可以使用一种“纯...EF是微软主推的数据存取技术,其他一些重要的微软技术领域,比如Asp.Net MVC、WCF等等,都使用EF构建数据存取层。 在实际开发中,现在通常使用EF来构建应用程序的数据存取层。...可以访问多种数据库(如Oracle、IBM DB、SQL AnyWhere、MySql、SQLite等),但与Sql Server配合的最好。 更好的将应用程序与数据库隔离开了。
这一篇文章主要讲解EF的迁移,我们前面的文章一直是使用新增数据的方式生成数据库,但是在实际开发过程中,我们会使用代码迁移的方式生成数据库,下面我们来讲解一下代码迁移。...零、代码迁移命令 我们在进行代码迁移的时候经常会用到如下命令: 1.Enable-Migrations:在项目中启动代码迁移; -ContextTypeName :指定要使用的上下文,默认情况下该参数可以省略...注1:当执行 Add-Migration 命令后生成的模型状态为挂起状态 注2:如果要查看模型是否已经迁移到数据库,可使用 Get-Migrations 命令查看。
有二年没关注EF,今天无意试了下发现跟主流的Hibernate等ORM框架越来越接近了,先看下Entity类的定义: using System; using System.Collections.Generic...--连接字符串,使用SQLSERVER LocalDb--> 30 <add name="MyConn" connectionString="Data Source=(LocalDb)\v11.0...using (var db = new OrderContext()) 14 { 15 16 //直接执行Sql...query = db.Orders.Where(c => c.CustomerName == "Jimmy.yang").AsQueryable(); 35 36 //输出Sql...Data Model时就能连接到Oracle db了,目前尚不支持Code-First,只能使用EF5,估计EF6要等明年才会正式发布 使用细节,可参考官网教程:http://www.oracle.com
继承是面向对象开发时经常用到的,但是SQL Server 数据库不具备继承,那么怎么办能?...我们可以利用如下三种方法: TPH(Table per Hierachy):对SQL架构进行非规范化来表示多态,使用鉴别列对类型区分; TPT(Table per Type):用外键表示继承关系 TPC...定义TPT继承策略需要在上下文中进行如下配置: modelBuilder.Entity().ToTable("Person"); modelBuilder.Entity()...("Person"); }); modelBuilder.Entity().Map(p=>{ p.MapInheritedProperties(); p.ToTable("Woman...下面总结一下以上三种策略的使用场景 策略 场景 TPC 不需要多表关联查询或者很少查询父类数据,并且没有与父类关联的类 TPH 需要多表关联查询,且子类的属性较少 TPT 需要多表关联查询,且子类的属性很多
EF开发团队的博客上发了文章Entity Framework source code has been released under an open source license ,Scott 也发了相关的博客...Entity Framework and Open Source。...EF团队成员One Unicorn也写了博客 Why open sourcing Entity Framework is a great move。...将进入EF6的最重要特性包括: Code First支持存储过程和函数 基于任务的Async(使用.NET 4.5) 自定义Code First conventions EntityFramework之领域驱动设计实践
在Entity Framework宣布开源后不久Entity Framework(EF) 5就正式发布了,ADO.NET官方博客上EF5 Released列出了EF5的新特性: 枚举类型支持 性能增强,...微软已经发布了一份白皮书,概述使用Entity Framework 5(它作为.NET 4.5的一部分发布)时应关注的各种性能注意事项。...EF仍然没有提供二级缓存,不过我们可以参考一些指南进行实现——如CodePlex上的示例,以及Julia Lerman的文章“Entity Framework与Windows Azure中的二级缓存”;...Entity Framework是由微软提供的一款面向.NET应用程序的商业对象关系映射框架。...Entity Framework 5.0系列之约定配置
所以,最好是在数据层中使用FluentAPI在数据层中进行实体类与数据库之间的映射工作。...实际数据类型将因使用的数据库提供程序而异。将属性设置为行版本会自动将属性配置为开放式并发标记。...所以以下API的映射推荐使用FluentAPI的方式来设置映射 6.ToTable - TableAttribute:配置此实体类型映射到的表名 modelBuilder.Entity()...如果未在对象模型中公开外键属性,则使用Map方法 modelBuilder.Entity().HasRequired(order => order.customer).WithMany()...modelBuilder.Entity().HasRequired(order => order.customer); 11.Map:将关系配置为使用未在对象模型中公开的外键属性。
前言 Model First我们称之为“模型优先”,这里的模型指的是“ADO.NET Entity Framework Data Model”,此时你的应用并没有设计相关数据库,在Visual Studio...简单演示使用过程 第一步:首先还是添加一个简单的控制台应用程序,然后在此项目上添加一个 ADO.NET 实体数据模型。 ? 第二步:选择空模型。 ? 第三步:在模型设计视图中,添加新实体 ? ?...然后再点击完成即可,看到生成的Sql脚本。 ? 再然后,右键Sql脚本,点击执行 ? 最终数据库的此数据库多了两个表 ?
今天来讲解一下 .NET 中的重要成员 Entity Framework Core。...Entity Framework Core (以下简称 EF Core),是 EF6 之后微软推出的开源的轻量级可扩展跨平台 ORM 框架。...EF Core 需要和 .NET Core 应用程序一起使用,并且需要 .NET 4.5+ 版本。...以下是 EF Core 目前所不具有的 EF6 的功能 EDMX /模型的图形可视化 ; 实体数据模型向导 ; ObjectContext API ; 使用Entity SQL查询 ; 自动迁移 ; TPT...; TPC ; 多对多关系 ; Entity Splitting ; Spatial Data ; 延迟加载 ; 使用DbContext进行存储过程映射以进行CUD操作 ; 种子数据 ; 自动迁移 。
我们通过前面的学习,知道EF通过上下位负责跟踪实体的状态,实体状态的位置是在命名空间 System.Dat.Entity 里的 EntityState,具体状态有如下5种: Detached Unchanged...我们只需要在查询的时候使用 AsNoTracking() 来世的查询出来的对象是 Detached 状态。...如果要将实体状态标记为该状态,可以使用两种方法: 1.间接标记,通过 Add 方法调用,示例代码如下: using (var db = new EFDbContext()) { var user =...12 } db.Entry(user).State = EntityState.Added; db.SaveChanges(); } 三、Deleted 如果需要将实体从数据库中删除,可以使用...和 Added 状态一样,删除实体可以使用两种方法: 1.通过调用 Remove 或者是 RemoveRange 方法,示例代码如下: using (var db = new EFDbContext()
前言 “Database First”模式我们称之为“数据库优先”,前提是你的应用已经有相应的数据库,你可以使用EF设计工具根据数据库生成数据数据类,你可以使用Visual Studio模型设计器修改这些模型之间对应关系...简单使用演示过程 第一步:确定好已有的数据库. image.png 第二步:创建一个简单的控制台应用程序。 ? 第三步:右键项目,然后添加新建项====>ADO.NET 实体数据模型 ?
有以下两种方式: 方式名称 说明 时间戳注解/行版本 使用TimestampAttribute特性,实体的属性必须是byte数组类型 非时间戳注解 使用ConcurrencyCheckAttribute...(服务端胜) 使用DbEntityEntry.Reload方法加载数据库中的数据而不是使用当前实体的值。...2.2使用当前实体数据(客户端胜) 使用当前实体数据覆盖数据库中的数据。...同时我们会打印执行的SQL,来说明并发检测所依赖的基本原理。...这里的日志信息还展示了每条SQL执行的时。 观察上面的SQL语句,发现每个UPDATE 语句都有一个WHERE条件,尤为特别的是`Email` = @gp2,并发检测就是依赖这条语句实现的。
领取专属 10元无门槛券
手把手带您无忧上云