前言

这篇不会细谈功能, 只是一个总链接.

参考

Docs – What's New in EF Core 7.0

Breaking Change

参考: Docs – Breaking changes in EF Core 7.0 (EF7)

Encrypt defaults to true for SQL Server connections

我 follow EF Core – 搭建单侧环境 做了一遍, 在运行 dotnet ef database update 后就出现了 error

A connection was successfully established with the server, but then an error occurred during the login process. (provider: SSL Provider, error: 0 - The certificate chain was issued by an authority that is not trusted.)

其原因是 EF7 依赖了 Microsoft.Data.SqlClient 5.0.0

Github Issue – EFCore.SqlServer 6.0.1 Untrusted certificate authority error

 

而 Microsoft.Data.SqlClient 4.0.0 的时候有一个 breaking change

解决方法有好几个

参考: Stack Overflow – "The certificate chain was issued by an authority that is not trusted" when connecting DB in VM Role from Azure website

最简单的是在 ConnectionStrings 加上 TrustServerCertificate=True, 变成这样

Server=192.168.1.152;Database=EFCore7;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True

这个 for development 情况下是可以的, 在 production 的时候就不太理想了. 但我目前还没有 EF Core 7.0 production 的项目, 之后才研究 TODO...

SQL Server tables with triggers now require special EF Core configuration

EF7 对 multiple insert 在 SaveChanges 时做了一些优化 (快 4 倍), 但是在 SQL Server + Trigger (after insert) 的情况下, 这个优化跑不了.

所以当 Table 有使用 Trigger 就必须通知 EF Core 这样它就会 fallback 用回以前的 query.

modelBuilder
.Entity<BlogWithTrigger>()
.ToTable(tb => tb.HasTrigger("TRG_InsertUpdateBlog"));

Trigger 名字不重要, 因为只是要表达 "有" 而已. 如果想直接把所有 tables 都设置成 trigger 可以用这个 Model Convention.

JSON Columns

看这篇 EF Core – JSON Column

ExecuteUpdate and ExecuteDelete (Bulk updates)

看这篇 EF Core – ExecuteUpdate and ExecuteDelete (Bulk updates 批量更新和删除)

Index sort order

非常基础的一个功能, 到 7.0 才有...真的是...

如果只是一个 column, index order 对性能没有什么影响. 但如果是 multiple column 的 index, order 是可以提升性能的哦.

set all index to desc

modelBuilder.Entity<Blog>()
.HasIndex(b => new { b.Url, b.Rating })
.IsDescending();

set one by one, Url 是 asc, Rating 是 desc

modelBuilder.Entity<Blog>()
.HasIndex(b => new { b.Url, b.Rating })
.IsDescending(false, true);

EF Core – 7.0 New Features的更多相关文章

  1. ASP.NET Boilerplate 学习 AspNet Core2 浏览器缓存使用 c#基础,单线程,跨线程访问和线程带参数 wpf 禁用启用webbroswer右键菜单 EF Core 2.0使用MsSql/MySql实现DB First和Code First ASP.NET Core部署到Windows IIS QRCode.js:使用 JavaScript 生成

    ASP.NET Boilerplate 学习   1.在http://www.aspnetboilerplate.com/Templates 网站下载ABP模版 2.解压后打开解决方案,解决方案目录: ...

  2. EF Core 1.0 和 SQLServer 2008 分页的问题

    EF Core 1.0 在sqlserver2008分页的时候需要指定用数字分页. EF Core1.0 生成的分页语句中使用了 Featch Next.这个语句只有在SqlServer2012的时候 ...

  3. ASP.NET Core 开发-Entity Framework (EF) Core 1.0 Database First

    ASP.NET Core 开发-Entity Framework Core 1.0 Database First,ASP.NET Core 1.0 EF Core操作数据库. Entity Frame ...

  4. EF Core 1.0中使用Include的小技巧

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:由于EF Core暂时不支持Lazy Loading,所以利用Include来加载额外 ...

  5. .NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0简介

    .NET Core 1.0.ASP.NET Core 1.0和EF Core 1.0简介 英文原文:Reintroducing .NET Core 1.0, ASP.NET Core 1.0, and ...

  6. EF Core 2.0 新特性

    前言 目前 EF Core 的最新版本为 2.0.0-priview1-final,所以本篇文章主要是针对此版本的一些说明. 注意:如果你要在Visual Studio 中使用 .NET Core 2 ...

  7. EF Core 2.0使用MsSql/Mysql实现DB First和Code First

    参考地址 EF官网 ASP.NET Core MVC 和 EF Core - 教程系列 环境 Visual Studio 2017 最新版本的.NET Core 2.0 SDK 最新版本的 Windo ...

  8. EF Core 2.0中如何手动映射数据库的视图为实体

    由于Scaffold-DbContext指令目前还不支持自动映射数据库中的视图为实体,所以当我们想使用EF Core来读取数据库视图数据的时候,我们需要手动去做映射,本文介绍如何在EF Core中手动 ...

  9. Many-to-many relationships in EF Core 2.0 – Part 1: The basics

    转载这个系列的文章,主要是因为EF Core 2.0在映射数据库的多对多关系时,并不像老的EntityFramework那样有原生的方法进行支持,希望微软在以后EF Core的版本中加入原生支持多对多 ...

  10. EF Core 3.0 Preview 9 的2个小坑

    之前我们的数据库服务器使用的是 SQL Server 2008 R2 ,由于从 EF Core 3.0 Preview 6 开始不支持 UseRowNumberForPaging ,只能停留在 EF ...

随机推荐

  1. 启动数据分析软件SPSS17遭遇的两弹窗解决方案

    问题描述 朋友请我帮她安装 SPSS17 这款软件,我寻思这是啥软件,谷歌一下,发现是一个数据分析工具. 在一系列的下一步.确定后,打开时,第 1 个惊喜弹窗来了: [弹窗内容]应用程序无法启动,因为 ...

  2. ELK Stack - Elasticsearch · 搜索引擎 · 部署应用 · 内部结构 · 倒排索引 · 服务接入

    系列目录 ELK Stack - Elasticsearch · 搜索引擎 · 全文检索 · 部署应用 · 内部结构 · 倒排索引 · 服务接入 ELK Stack - Kibana (待续) ELK ...

  3. 如何去除字符串中的 "\n" ?80% 的同学错了!

    大家好,我是鱼皮,今天分享一个小知识. 我最近负责的工作是设计一个 SQL 解析引擎.简单来说,就是将一个 SQL 表达式字符串,解析为一颗对象树,从而执行查询等一系列操作. 在最开始,我就遇到了一个 ...

  4. 基于Java“萌宠之家”宠物综合服务平台设计实现(源码+lw+部署文档+讲解等)

    \n文末获取源码联系 感兴趣的可以先收藏起来,大家在毕设选题,项目以及论文编写等相关问题都可以给我加好友咨询 系统介绍: 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面 ...

  5. C# Expression详解(高级)

    LINQ在本地查询IEnumerbale主要是用委托来作为传参,而解析型查询IQueryable则用Expression来作为传参: public static IEnumerable<T> ...

  6. Jmeter函数助手21-evalVar

    evalVar函数用于执行变量表达式. 变量的名称:填入变量的名称name.注意不是引用变量${name} 1.evalVar函数和eval函数的区别:evalVar只能接收变量名称:eval能接收引 ...

  7. 构建人工智能的工具 —— VXscan-R:数字孪生环境软件模块

    地址: https://www.creaform3d.com.cn/zh/ji-liang-jie-jue-fang/vxscan-rshu-zi-luan-sheng-huan-jing-ruan- ...

  8. 深度神经网络:深度神经网络部署工程师——必备工具分享:onnx_simplifier、OnnxSlim

    onnx_simplifier 地址: https://github.com/daquexian/onnx-simplifier OnnxSlim 地址: https://github.com/WeL ...

  9. pytorch不像TensorFlow那样有专用的文件存储格式真的是不足吗?pytorch该如何处理大量小文件的读取呢?

    偶然发现前文: [转载] PyTorch下训练数据小文件转大文件读写(附有各种存储格式对比) 在谈论pytorch的文件读取问题,因为以前是搞TensorFlow的,后来由于编写效率和生态环境问题转为 ...

  10. 国产深度学习框架MindSpore的高校发展之旅——“样本点”计划

    MindSpore这个框架我是使用时间比较早的了,因为这是华为的产品,而且正好是我所在的领域,再加上前些年华为的那些爱国宣传,我是大力支持这个软件的,而且是非常支持的那种.虽然之前就知道华为的这个软件 ...