.NET Core CLI 此种方法对于 ASP.NET Core 也可以使用,其实当执行命令 dotnet ef migrations 时,会启动所在程序集(Program.cs),和正常启动ASP.NET...update 命令创建数据库并向其应用新的迁移 dotnet ef database update dotnet ef migrations add InitialCreate 创建描述表结构的代码文件...EF Core 有两个工具集 .NET Core 命令行接口 (CLI) 工具可用于 Windows、Linux 或 macOS。...用这种方法,无需 Migrations代码文件,也无需 b => b.MigrationsAssembly("WebApi") ,将在程序启动时,创建表结构(context.Database.EnsureCreated...();),当然创建完表结构后,可以设定数据库种子(初始化表数据) 参考:ASP.NET Core 中的 Razor Pages 和 Entity Framework Core - 第 1 个教程(共 8
今天来讲解一下 .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操作 ; 种子数据 ; 自动迁移 。
微软在 Entity Framework Core 2+ 中引入了全局查询过滤器,简化了构建多租户应用程序和实体软删除的复杂度。这篇文章我将通过代码的形式对全局过滤查询进行详细的讲解。...多租户技术为共用的数据中心内如何以单一系统架构与服务提供多数客户端相同甚至可定制化的服务,并且仍然可以保障客户的数据隔离。...p.IsDelete); modelBuilder.Entity().HasQueryFilter(p => !...零、准备基础代码 我们首先准备 Model 代码,代码很简单: /// /// 实体基类 /// public class BaseModel { public...首先利用 DependencyContext 获取运行时程序集,将获得的程序集添加到集合中,然后查找出继承自基类 BaseModel 的程序集,如果查找到了就返回,如果没有查找到就实现全局过滤缓存,代码如下
一、课程介绍 在如今流行的前后分离项目中,前端的菜单都是通过后端的API进行获取进行动态加载的,那么今天阿笨给大家分享一下如何使用Entity Framework Core来实现读取Json格式的Tree...本次分享课程包含知识点如下: 1)、EF Core开启自动迁移,并批量生成权限菜单数据。...2)、AutoMapper在ASP.NET Core中的简单运用,如何将Entity Model转换为ViewModel。 3)、如何解决在EF Core中实体出现循环引用的问题。...文章末尾阿笨已经给大家把示例代码进行封装好了,开箱即用, 感兴趣的根据自身实际情况进行选择学习哦。 ? 二、示例截图如下 ? ? ? ? ? 三、使用步骤 1)、修改连接字符串 ?
EF Core与其他ORM比较 1、Entity Framework Core(EF Core)是微软官方的ORM框架。...EF Core不支持模型优先,推荐使用代码优先,遗留系统可以使用Scaffold-DbContext来生成代码实现类似DBFirst的效果,但是推荐用Code First 。...modelBuilder.Entity().HasKey(c => c.Number); 6、可以用HasDefaultValue()为属性设定默认值 modelBuilder.Entity...;聚集索引:IsClustered() 8、… 通过代码查看EF Core的sql语句 方法1:标准日志 nuget安装:Install-Package Microsoft.Extensions.Logging.Console...方法3:ToQueryString EF Core的Where方法返回的是IQueryable类型,DbSet也实现了IQueryable接口。
Framework Core库: 首先Data项目肯定需要安装这个库, 而我要使用sql server, 参照官方文档, 直接在解决方案下执行这个命令: dotnet add ....可以先试一下现在的效果: 可以看到, dotnet ef 命令还不可用....这个快照文件解决了老版本Entity Framework的一个顽固的团队问题. 使用迁移文件创建脚本或直接生成数据库....使用这些方法必须先使用OrderBy/OrderByDescending排序....如何避免这个陷阱呢? 可以这样做: 直接设置dbContext.Entry().State的值 这时, 再看看SQL: 嗯.
使用EF Core Migrations可以使Entity & DbContext的配置与数据库保持一致,Migrations可以非常容易的将创建和更新数据库,当一个项目在开发过程中时,程序员能保证实体更新...,因此他们需要运行Migration保证数据库是最新 1 如何运行Migrations 在Package Manager Console中运行EF Core Migrations, 我们可以使用.NET...Microsoft.EntityFrameworkCore.Tools 接下来我们看一下迁移命令 2 Add Migration 命令 Add Migration命令将创建迁移文件,你的DbContext和Entity...Frame Core Migrations常用的相关命令 源代码地址: https://github.com/bingbing-gui/Asp.Net-Core-Skill/tree/master/EntityFrameworkCore...tabs=dotnet-core-cli https://www.yogihosting.com/migrations-entity-framework-core/
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现。...实现 timestamp 数据类型最初是为了支持 SQL Server 恢复算法。每次修改页时,都会使用当前的 @@DBTS 值对其做一次标记,然后 @@DBTS 加1。...在Entity Framework 中采用IsConcurrencyToken配置后RowVersion即自动用于where子句中用于比较Row Version, 我们也需要使用这个特性实现并发控制,Ak.Ini...的博文http://www.cnblogs.com/akini/archive/2013/01/30/2882767.html ,我们按照这篇文章的方法在Entity framework core上面解决并发控制问题...最新的代码放在https://github.com/geffzhang/Sequence/tree/dotnetcore
p.IsDeleted 12 && p.TenantId == this.TenantId ); 13 } 14 } 我们给 Post 实体类型定义了一个模型级查询过滤器,实现了多租户和软删除...要使用表拆分,必须在共享表的所有实体类型之间配置标识关系(外键属性构成主键) 示例代码: 1 modelBuilder.Entity() 2 .HasOne(e => e.Details...示例代码: 1 modelBuilder.Entity().OwnsOne(p => p.OrderDetails, cb => 2 { 3 cb.OwnsOne...目前只支持标量函数 EF Core迁移将不负责创建它,您必须在数据库中创建映射函数 九.code first 实体配置 在EF6可以通过 EntityTypeConfiguraiton 封装特定实体类型的配置代码...,在EF Core2.0中,这个特性回来了(EF Core 之前的 core版本不支持)。
一.前言 Entity Framework(后面简称EF)作为微软家的ORM,自然而然从.NET Framework延续到了.NET Core。...以前我也嫌弃EF太重而不去使用它,但是EF Core(Entity Framework Core)已经做了很多性能优化,还有一些增加新特性,吸引了我去使用它。...其他数据库请查看:https://docs.microsoft.com/zh-cn/ef/core/providers/ 安装好EF Core之后,打开项目*.csproj文件 添加如下代码。...在Startup添加如下代码: public void ConfigureServices(IServiceCollection services) { services.AddDbContextPool...还有一种方法就是通过代码进行自动迁移,这里暂时不做叙述,后面的文章会详细介绍。 六.
一.前言 我们在使用EF进行开发的时候,肯定会遇到将迁移更新到生产数据库这个问题,前面写了一篇文章介绍了Entity Framework Core 2.0的入门使用,这里面介绍了使用命令生成迁移所需的SQL...这里还有另一种方法,就是利用EF Core自身所提供的方法来进行迁移。... public static void Migrate([NotNull] this DatabaseFacade databaseFacade) 三.实现自动迁移 我们可以利用上面的方法...代码如下: static void Main(string[] args) { Console.WriteLine("Entity Framework Core Migrate Start !"...Framework Core Migrate Complete !")
前言 Entity Framework Core 2.0更新也已经有一段时间了,园子里也有不少的文章.. 看了下2.0的新特性基本算是完成了我之前发布的路线图的内容 很不错 下面就介绍一下新特性....嗯..软删除,多租户的数据库设计 可以大量的使用这方面的功能,会减少很多代码量 public class BloggingContext : DbContext { public DbSet<...] public static int PostReadCount(int blogId) { //这里不需要实现 throw new Exception...迁移不会对其进行创建 2.性能提升方面 2.1DbContext连接池 在ASP.NET Core程序中我们使用EF Core一般都是将自定义DbContext类型注册到依赖注入系统中,然后通过控制器中的构造函数参数获取该类型的实例...c in context.Customers where EF.Functions.Like(c.Name, "a%"); select c; 值得注意的是,Like方法带有内存中的实现
前言 今天下午在开发的时候发现EF Core实体模型中的导航属性为 null,经排查既不是没有加 virtual 关键字,也不是外键关系映射错误。 ?...解决方法 通过查询官网文档,发现,原因在于EF Core目前不支持延迟加载,所以每次查询,都会得到 null 的导航属性。目前只有使用 预先加载 或 显示加载 才能得到正确的导航属性。
按下硬件、网络不提,我们单表从程序层面对系统的性能进行优化,翻来覆去无外乎三个方面 缓存 异步 sql 本片文章,我们针对.NET Core Web项目的EF Core框架进行性能优化。...正文 1、EF Core框架已经本地缓存机制memorycache,所以我们访问一个接口,二次访问的性能相比首次会提升一大截 2、尽可能的通过主键查询 3、在进行字符串模糊查询时,分为三种情况 //StartsWith...优化 那么如果是多个表的数据查询如何优化呢?...数据库查询进行笛卡尔积查询,实际查询了4次 拆分查询时,EF Core会生成两个sql语句: 1、单表查询主表product 2、主表product与副表productLogs进行inner join,...即不使用EF Core本身生成的sql var result= ProductContext.Product.FromSqlRaw("select * from product").ToList();
EFCore 2.1出来有一段时间了,里面的新功能还没怎么用,今天研究下如何使用EF Core 2.1添加种子数据。...这部分的官方文档地址是:https://docs.microsoft.com/en-us/ef/core/modeling/data-seeding 我们在开发时总是需要添加一些种子数据的,所以这个功能还是比较有用的...准备工作 我建立了一个ASP.NET Core项目,里面有几个Model,其中一个是省份Province,另一个是城市City: ? ? 里面还涉及到其它的Model,不过本文用不到,就不贴了。...先删除了之前添加的Id为2的种子数据,然后把插入了一笔Id为3的数据。 看下SQL: ? 也是先Delete,再Insert。 数据库里: ? 种子数据为什么要指定主键的值? ...如果无法在Model里设置主键/外键 有时,我们在主从关系的Model里不明确定义外键;有时候我们Model的主键是private set的; 这时我们就无法在HasData里设置主键/外键的值了,那么如何来添加种子数据呢
EF Core介绍 Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术,EF Core 是适用于 .NET 的现代对象数据库映射器...Core(EF Core) 扩展库,旨在提升 Entity Framework 的性能和克服其局限性。...Framework Core(EF Core)。...易于集成:通过 NuGet 包管理器可以轻松地将 EntityFramework-Plus 集成到现有的 Entity Framework 或 Entity Framework Core 项目中。...批量删除 如果需要删除成百上千个实体,使用Entity Framework Core进行删除可能会非常慢。
前言 最近打算用.NET Core写一份开源的简易CMS系统,来练练手 所以又去深入研究了一下Entity Framework Core 发现其实有些细节园子里还是很少讲到. 特意整理了几个细节....正文 1.数据库迁移 先了解一下什么是"数据库迁移",它提供了一种方法,可以逐步将Code First的实体架构更改应用于数据库,以保持数据库与EF Core模型同步,同时保留数据库中的现有数据。...EF Core的数据迁移相对EF6来说改了不少也简化了一些.所以我们现在就来看看如何进行数据迁移 我们以官方代码来做为例子..先来创建一个简单的上下文....解决方法是找到XXXXXXXXXXXXX_BanBen1.cs - 主迁移文件,删除Up和Down里面的代码.
前言 Entity Framework Core 2.0更新也已经有一段时间了,园子里也有不少的文章.....本文主要是浅析一下Entity Framework Core的并发处理方式. 1.常见的并发处理策略 要了解如何处理并发,就要知道并发的一般处理策略 悲观并发策略 悲观并发策略,正如其名,它指的是对数据被外界...本篇就是讲解,如何在我们的Entity Framework Core中来使用和自定义我们的并发策略 2.Entity Framework Core并发令牌 要使用Entity Framework Core...中的并发策略,就需要使用我们的并发令牌(ConcurrencyCheck) 在Entity Framework Core中,并发的默认处理方式是无视并发冲突的,任何修改语句在条件符合的情况下,都可以修改成功...在高并发的情况下这种处理方式,肯定会给我们的数据库带来很多脏数据,所以,Entity Framework Core提供了并发令牌(ConcurrencyCheck)这个特性.
大部分开发人员会自己定义记录数据变动的代码,但是这样不仅费时费力有时还会影响到这个业务的性能。...如果你使用的是 Entity Framework Core 2.0 及以上版本来开发项目的话,那这个问题就好解决了。...在 Entity Framework Core 中,只要捕获到了数据变更记录,我们就可以将数据随时还原到变更前的状态,在这里数据库变更记录被称为审计数据。...数据的新旧值是如何获取到的呢? 要解答上述两个问题,那就跟着我一起来看看怎么利用 Entity Framework Core 来捕获审计数据。...上述代码理解起来比较简单,适用于大部分情况,可以直接放在项目中使用。