tnblog
首页
视频
资源
登录
没有个性,不需要签名
排名
38
文章
13
粉丝
3
评论
3
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

EF Core 简介

7178人阅读 2020/12/16 19:56 总访问:75574 评论:0 收藏:0 手机
分类: .net core

Entity Framework Core 简介

今天来讲解一下 .NET 中的重要成员 Entity Framework Core。Entity Framework Core (以下简称 EF Core),是 EF6 之后微软推出的开源的轻量级可扩展跨平台 ORM 框架。 EF Core 需要和 .NET Core 应用程序一起使用,并且需要 .NET 4.5+ 版本。下面列举一下 EF Core 所支持的项目类型:

运行在 .NET Core 平台上的 Asp.Net Core MVC/Web Api、Console、etc ;
运行在 .NET 4.5+ 版本上的 ASP.NET MVC/Web Api 、WinForm、Console、WinForm、WPF ;
UWP 平台相关的应用 ;
安卓、IOS、Windows 移动平台上运行的应用。

一、EF Core 开发方法

EF Core 只支持两种开发方式 Code First 和 Database First,在 EF Core 2.0 开始不支持数据库模型的可视化设计器以及数据库设计导航。在 Code First 方法中, EF Core API 使用基于 domain classes 中提供的约定和配置的迁移来创建数据库和表,这种方法在 DDD 中很有用。如果你习惯于 Database First ,那么你可以使用 EF Core 命令基于现有的数据库创建 domain classes 和上下文类,但是这种方法支持有限,因为 EF Core 2+ 版本 不再支持可视化设计器和设计导航。

二、EF Core 与 EF6

这里列一下 EF Core 目前所具有的 EF6 的功能

DbContext ;
DbSet ;
Data Model ;
使用Linq-to-Entities查询 ;
变更跟踪 ;
保存更改 ;
迁移 。

以下是 EF Core 目前所不具有的 EF6 的功能

EDMX /模型的图形可视化 ;
实体数据模型向导 ;
ObjectContext API ;
使用Entity SQL查询 ;
自动迁移 ;
TPT ;
TPC ;
多对多关系 ;
Entity Splitting ;
Spatial Data ;
延迟加载 ;
使用DbContext进行存储过程映射以进行CUD操作 ;
种子数据 ;
自动迁移 。

EF Core 具有如下新功能

简单的关系配置
批量INSERT,UPDATE和DELETE操作
用于测试的内存提供程序
支持IoC(控制反转)
独特的约束
阴影属性
Alternate keys
全局查询过滤器
Field mapping
DbContext池
用于处理断开的实体图的更好模式

评价

EF core检查某个字段是否是主键,ef不查询更新

使用反射检查ef中某个字段是否是主键,使用如下代码即可//检测当前字段是否是主键 varkeys=userm.Property(item.Name).Met...

EF core上下文对象在异步情况下被自动释放的问题。Cannot access a disposed object. A common cause of this error is disposing a context that was resolved

我们看看下面的代码:这里为了节省效率,更新缓存的操作放到了异步中去执行,但是执行到Article findArticle = _articleDAL...

ef EF core 使用原生 SQL 查询

有时候在执行一个赋值一点的sql要动态生成用lamdba来写很不方便,新版本用动态生成表达式树的方式也不怎么行了...需要时间...

EF core 公共接口封装

show me code: public interface ICommonDAL<T> where T : class, new() { protected EFContex...

EF core异步方式读取与返回数据

我们这里可以使用异步的方式来读取与返回数据publicasyncTask<IActionResult>Index() { returnView(await_context....

EF core 多对多

EF 6.x 支持多对多关系的隐式联接表,但 EF Core 不支持。有关详细信息,请参阅:https://github.com/dotnet/efcore/issues...

EF core创建组合主键

使用modelBuilder.Entity<Type>().HasKey指定多个字段即可protectedoverridevoidOnModelCreating(ModelBuildermodelB...

EF core 预先加载显式加载延迟加载

预先加载读取该实体时,会同时检索相关数据。 此时通常会出现单一联接查询,检索所有必需数据。 可使用 Include 和 ThenInc...

EF core 级联删除

和以前的写法有点不同现在没有modelBuilder.Conventions这种用法了,单独开启级联删除的方法也和以前不太一样以前的写法:p...

EF core SqlSugarFreeSqlDapper EF 对比

EF Core优点:微软官方ORM功能强大,支持模式多文档齐全缺点:1.复杂查询生成的SQL语句性能太差(对操作功力要求高)2.一些...

EF core中使用IDesignTimeDbContextFactory的测试方法,调试方法

DesignTimeDbContextFactory的作用 一些EF Core Tools命令(例如Migrations命令)需要在设计时创建一个派生的DbContext实例...

abp vnext连接mysql。.net core连接mysql。EF core连接mysql

增加一个MySQL的库:Volo.Abp.EntityFrameworkCore.MySQL <PackageReference Include="Volo.Abp.EntityFrameworkCo...

abp vnext EF core连接MySql报空引用错,连接SqlServer报空引用错。abp vnext 的坑

使用abp vnext 真的太喜欢报空引用的错了。你报点错给一点具体的错不行么,这样搞起让人去猜太坑了,比如前面的auto_fac没...

EF core code first 忽略映射数据库字段NotMapped

ef core code first 忽略映射数据库字段非常简单使用NotMapped特性即可。 [NotMapped] public string Status { get; set;...

abp vnext 通用仓储 EF core。WhereIf,多条件,动态条件,分页,动态排序等

abp vnext 通用仓储 ef core WhereIf,多条件,分页等public async Task<List<LandInfoDto>> GetListAsync(Pag...