001从零开始入门Entity Framework Core——基础知识

1、对于 EF Core,使用模型执行数据访问。 模型实体类和表示数据库会话的 上下文对象构成。 上下文对象允许查询并保存数据。

2、EF 支持以下模型开发方法:

  • 从现有数据库生成模型。
  • 对模型手动编码,使其符合数据库。
  • 创建模型后,使用 EF 迁移从模型创建数据库。 模型发生变化时,迁移可让数据库不断演进。

1、Entity Framework Core (EF Core) 以 NuGet 包的形式提供。 应用程序所需的包取决于:

  • 所使用的数据库系统类型(SQL Server、SQLite 等)
  • 所需的 EF Core 功能

2、安装包的常规过程是:

  • 确定数据库提供程序并安装相应的包
  • 如果使用关系数据库提供程序,还需安装 Microsoft.EntityFrameworkCore 和 Microsoft.EntityFrameworkCore.Relational。 这有助于确保使用一致的版本,同时也意味着 NuGet 会在新的包版本发布时通知你。
  • 或者确定所需的工具类型,并为此安装相应的包

3、总言之,要将 EF Core 添加到应用程序,请安装适用于要使用的数据库提供程序的 NuGet 包。

4、注意事项:

  • 如果要生成 ASP.NET Core 应用程序,不需要安装内存中和 SQL Server 提供程序。 这些提供程序随 EF Core 运行时一起包含在当前版本的 ASP.NET Core 中。
  • 要安装或更新 NuGet 包,可以使用 .NET Core 命令行界面 (CLI)、Visual Studio 包管理器对话框或 Visual Studio 包管理器控制台。
  • 用于 EF Core 的第三方提供程序通常不随 EF Core 运行发布修补程序版本。 若要将使用第三方提供程序的应用程序升级到 EF Core 的修补程序版本,可能需要添加对单独的 EF Core 运行时组件(如 Microsoft.EntityFrameworkCore 和 Microsoft.EntityFrameworkCore.Relational)的直接引用。
  • 请务必安装 Microsoft 提供的所有 EF Core 包的同一版本。 例如,如果安装了 5.0.3 版本的 Microsoft.EntityFrameworkCore.SqlServer,则所有其他 Microsoft.EntityFrameworkCore.* 包也必须为 5.0.3 版本。
  • 此外,请确保所有外部包都与所使用的 EF Core 的版本兼容。 特别是,检查外部数据库提供程序是否支持你所使用的 EF Core 版本。 EF Core 的新主版本通常需要更新的数据库提供程序。

1、EF Core 通过使用”数据库提供程序”支持不同的数据库系统。 每个系统都有自己的数据库提供程序,而提供程序以 NuGet 包的形式提供。 应用程序应安装其中一个或多个提供程序包。

2、下表列出了常见的数据库提供程序。

数据库系统 包 SQL Server 和 SQL Azure Microsoft.EntityFrameworkCore.SqlServer SQLite Microsoft.EntityFrameworkCore.Sqlite Azure Cosmos DB Microsoft.EntityFrameworkCore.Cosmos PostgreSQL Npgsql.EntityFrameworkCore.PostgreSQL MySQL Pomelo.EntityFrameworkCore.MySql EF Core 内存中数据库 Microsoft.EntityFrameworkCore.InMemory

Microsoft 和第三方以 NuGet 包的形式发布了许多 EF Core 扩展。 常用包包括:

功能 包 附加依赖项 用于延迟加载和更改跟踪的代理 Microsoft.EntityFrameworkCore.Proxies Castle.Core 对 SQL Server 的空间支持 Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite NetTopologySuite 和 NetTopologySuite.IO.SqlServerBytes 对 SQLite 的空间支持 Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite NetTopologySuite 和 NetTopologySuite.IO.SpatiaLite 对 PostgreSQL 的空间支持 Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite NetTopologySuite 和 NetTopologySuite.IO.PostGIS(通过 Npgsql.NetTopologySuite) 对 MySQL 的空间支持 Pomelo.EntityFrameworkCore.MySql.NetTopologySuite NetTopologySuite

其他 EF Core 包作为数据库提供程序包的依赖项进行拉取。 但是,建议为这些包添加显式包引用,这样 NuGet 在发布新版本时会提供通知。

功能 包 EF Core 基本功能 Microsoft.EntityFrameworkCore 通用关系数据库功能 Microsoft.EntityFrameworkCore.Relational 用于 EF Core 特性等的轻型包。 Microsoft.EntityFrameworkCore.Abstractions EF Core 使用情况的 Roslyn 代码分析器 Microsoft.EntityFrameworkCore.Analyzers 没有原生 SQLite 依赖项的 EF Core SQLite 提供程序 Microsoft.EntityFrameworkCore.Sqlite.Core

Release 目标 Framework 支持截止时间 EF Core 6.0 .NET 6 2024 年 11 月 8 日 (LTS) EF Core 5.0 .NET Standard 2.1 2022 年 5 月 10 日过期 EF Core 3.1 .NET Standard 2.0 2022 年 12 月 3 日 (LTS) EF Core 3.0 .NET Standard 2.1 2020 年 3 月 3 日过期 EF Core 2.2 .NET Standard 2.0 过期时间:2019 年 12 月 23 日 EF Core 2.1 .NET Standard 2.0 过期时间:2021 年 8 月 21 日* EF Core 2.0 .NET Standard 2.0 过期时间:2018 年 10 月 1 日 EF Core 1.1 .NET Standard 1.3 过期时间:2019 年 6 月 27 日 EF Core 1.0 .NET Standard 1.3 过期时间:2019 年 6 月 27 日

EF Core 3.1 5.0 6.0 .NET & .NET Core 3.1 5.0 6.0 .NET Standard 2.0 2.1 .NET Framework 4.7.2 Mono 5.4 6.4 Xamarin.iOS 10.14 12.16 (使用 .NET 6) Xamarin.Mac 3.8 5.16 (使用 .NET 6) Xamarin.Android 8.0 10.0 (使用 .NET 6) UWP 10.0.16299 (使用Windows 应用 SDK) Unity 2018 年 1 月 2021.2 TBD Tizen 4.0 6.0 (使用 .NET 6)

Original: https://www.cnblogs.com/iZOHC/p/16663922.html
Author: 张欧昊辰
Title: 001从零开始入门Entity Framework Core——基础知识

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611075/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 商城限时秒杀功能系统

    我们在网购的时候常常会看到”限时””秒杀”等字眼,商家在产品的促销上除了发放优惠券,还喜欢用限时秒杀的方式, 让价格和原本的售价形成…

    数据库 2023年6月14日
    0105
  • Mysql 一主一从

    1. 主从原理 1.1 主从介绍 所谓 mysql 主从就是建立两个完全一样的数据库,其中一个为主要使用的数据库,另一个为次要的数据库,一般在企业中,存放比较重要的数据的数据库服务…

    数据库 2023年6月14日
    079
  • MySQL45讲之保证高可用

    本文主要介绍 MySQL 主备延迟,延迟产生的原因和主备切换策略。 主备延迟 主备同步过程中主要有三个时间点: [En] There are three main time poi…

    数据库 2023年5月24日
    076
  • 获取本机MAC地址

    需添加引用:System.Management.dll //////public string GetMacAddress(){string mac =””…

    数据库 2023年6月11日
    087
  • 代码更新提交到GIT

    1、先克隆代码到本地做备份(在需要克隆项目的的那个文件夹下使用Git Bash Here可以直接定位到当前目录,不让需要定位cd命令到目录再使用克隆命令) $ git clone …

    数据库 2023年6月11日
    0104
  • 4. 事务和锁

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    数据库 2023年6月16日
    0104
  • 工具 | 如何对 MySQL 进行 TPC-C 测试?

    作者:丁源 RadonDB 测试负责人负责 RadonDB 云数据库、容器化数据库的质量性能测试,迭代验证。对包括云数据库以及容器化数据库性能和高可用方案有深入研究。 |背景 根据…

    数据库 2023年5月24日
    095
  • Linux系统安装JDK

    准备工作 1.去JDK的官网下载一个1.8的安装包 2.解压到linux系统 tar -zxvf jdk-8u311-linux-x64.tar.gz -C /download/c…

    数据库 2023年6月6日
    087
  • 你的 SQL 还在回表查询吗?快给它安排覆盖索引

    什么是回表查询 小伙伴们可以先看这篇文章了解下什么是聚集索引和辅助索引:Are You OK?主键、聚集索引、辅助索引,简单回顾下,聚集索引的叶子节点包含完整的行数据,而非聚集索引…

    数据库 2023年5月24日
    090
  • Indian Math tech

    https://www.youtube.com/watch?v=2j0nHEy5y18 本文来自博客园,作者:ukyo–BlackJesus,转载请注明原文链接:htt…

    数据库 2023年6月11日
    085
  • MySQL函数学习(三)—–日期和时间函数

    注:笔记旨在记录 三、MySQL 日期和时间函数 3.1 获取时间、日期、年、月、日、周、日相关函数 \ 函 数 名 称 作 用 1 CURDATE 和 CU…

    数据库 2023年6月16日
    073
  • [SWPU2019] Android1

    给出一个apk文件,用jadx打开简单看看源代码 发现调用了一个库文件,后面的函数只做了登录,是否成功都不会有有用的信息出来了,那么就把库文件解压出来放入ida中看看 char *…

    数据库 2023年6月11日
    086
  • 第十章 对象的生命周期

    1.什么是生命周期 对象创建 存活 销毁的完整的过程 2.为什么学习对象的生命周期 在以前通过new创建对象,调用对象,则该对象存活,直到被JVM的垃圾回收机制回收 现在由Spri…

    数据库 2023年6月14日
    095
  • 图片防盗链

    如何避免别的网站直接通过本网站的url访问本网站资源 简单的防盗 我可以做到请求来的时候先看看当前请求是从哪个网站过来的如果是本网站那么正常访问如果是其他网站直接拒绝请求头里面有一…

    数据库 2023年6月14日
    085
  • SQL语句大全–SQL

    前言 本片博客使用mysql数据库进行数据操作,使用Navicat for mysql 这个IDE进行可视化操作。每个SQL语句都是亲身实验验证的,并且经过自己的思考的。能够保证s…

    数据库 2023年5月24日
    065
  • 14 在 Java 中,如何跳出当前的多重嵌套循环

    在最外层添加一个标记如A,然后用breakA,即可跳出多重循环 关键字break 使用范围:switch-case,循环结构中 break在循环结构中的作用:结束 当前循环 bre…

    数据库 2023年6月6日
    093
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球