ToB企服应用市场:ToB评测及商务社交产业平台

标题: 第一单元 ORM 介绍 [打印本页]

作者: 守听    时间: 2024-1-12 02:02
标题: 第一单元 ORM 介绍
需要有的知识点:
 
1. 新手的烦恼

(1) SQL 拼不对,错还不会找
(2) 开发效率低
(3) 如果发现字段需要重命名,得挨个地方去修改
(4) 老板说要把SQLServer换成MySQL数据库,并且需要快速上线,此时你想的不是快速上线,而是快速离职
 
ORM 框架基本解决了上述的所有问题。
 
2. 什么是ORM

ORM(Object-relational mapping),中文翻译为对象关系映射,是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。

 
ORM框架的优/缺点

优点:
缺点:
 
常见的ORM框架

 
选择EntityFrameworkCore的原因:
 
3. EntityFrameworkCore概述

Entity Framework (EF) Core 是轻量化、可扩展、开源和跨平台版的常用 Entity Framework 数据访问技术。
EF Core 可用作对象关系映射程序 (O/RM),这可以实现以下两点:
EF Core 支持多个数据库引擎,请参阅数据库提供程序了解详细信息。
1. 模型开发方式

对于 EF Core,使用模型执行数据访问。 模型由实体类和表示数据库会话的上下文对象构成。 上下文对象允许查询并保存数据。 有关详细信息,请参阅创建模型
EF 支持以下模型开发方法:
 
2. EF O/RM 注意事项

虽然 EF Core 善长提取许多编程详细信息,但还是有一些适用于任何 O/RM 的最佳做法,可帮助避免生产应用中的常见陷阱:
 
4. Nuget 包

1. 包版本

请务必安装 Microsoft 提供的所有 EF Core 包的同一版本。 例如,如果安装了 5.0.3 版本的 Microsoft.EntityFrameworkCore.SqlServer,则所有其他 Microsoft.EntityFrameworkCore.* 包也必须为 5.0.3 版本。
此外,请确保所有外部包都与所使用的 EF Core 的版本兼容。 特别是,检查外部数据库提供程序是否支持你所使用的 EF Core 版本。 EF Core 的新主版本通常需要更新的数据库提供程序。
警告
NuGet 不强制使用一致的包版本。 请始终仔细检查你在 .csproj 文件或等效
 
2. 数据库提供程序

EF Core 通过使用“数据库提供程序”支持不同的数据库系统。 每个系统都有自己的数据库提供程序,而提供程序以 NuGet 包的形式提供。 应用程序应安装其中一个或多个提供程序包。
下表列出了常见的数据库提供程序。 有关可用提供程序的更全面列表,请参阅数据库提供程序
数据库系统配置示例NuGet 程序包SQL Server 或 Azure SQL.UseSqlServer(connectionString)Microsoft.EntityFrameworkCore.SqlServerAzure Cosmos DB.UseCosmos(connectionString, databaseName)Microsoft.EntityFrameworkCore.CosmosSQLite.UseSqlite(connectionString)Microsoft.EntityFrameworkCore.SqliteEF Core 内存中数据库.UseInMemoryDatabase(databaseName)Microsoft.EntityFrameworkCore.InMemoryPostgreSQL*.UseNpgsql(connectionString)Npgsql.EntityFrameworkCore.PostgreSQLMySQL/MariaDB*.UseMySql(connectionString)Pomelo.EntityFrameworkCore.MySqlOracle* PLSQL.UseOracle(connectionString)[Oracle.EntityFrameworkCore](
这些是由社区开发和提供的热门高质量开源提供程序。 列出的其他提供程序由 Microsoft 提供。
仔细考虑是否使用内存中提供程序。 它不是为生产用途而设计的,也可能不是用于测试的最佳解决方案
 
3. 工具
  1. $ dotnet tool --help<br>  <br>  install <PACKAGE_ID>    安装全局或本地工具。本地工具将被添加到清单并还原。<br>  uninstall <PACKAGE_ID>  卸载全局工具或本地工具。<br>  update <PACKAGE_ID>     更新全局工具。<br>  list                    列出全局或本地安装的工具。<br>  run <COMMAND_NAME>      运行本地工具。<br>  search <搜索词>            在 nuget.org 中搜索 dotnet 工具<br>  restore                 还原本地工具清单中定义的工具。
复制代码
使用用于 EF Core 迁移现有数据库中的反向工程(基架)的工具需要安装相应的工具包:
请参阅 Entity Framework Core 工具参考,详细了解如何使用 EF Core 工具,包括如何在项目中或在全局范围内正确安装 dotnet-ef 工具。
  1. $ dotnet tool install --help<br><br>-g, --global             为当前用户安装工具。<br>  --local                  安装工具并将其添加到本地工具清单(默认)。<br>  --tool-path <PATH>       将安装工具的目录。如果目录不要放置测试结果的目录。若不存在,将创建指定目录。存在,将创建该目 录。<br>  --version <VERSION>      要安装的工具包版本。<br>  --configfile <FILE>      要使用的 NuGet 配置文件。<br>  --tool-manifest <PATH>   清单文件的路径。<br>  --add-source <SOURCE>    添加其他要在安装期间使用的 NuGet 包源。<br>  --framework <FRAMEWORK>  要安装工具的目标框架。<br>  --prerelease             正在确定是否包括预发行包。<br>  --disable-parallel       防止并行还原多个项目。<br>  --ignore-failed-sources  将包源失败视为警告。<br>  --no-cache               不要缓存包和 HTTP 请求。<br>  --interactive            允许命令停止和等待用户输入或操作(例如,用以完成身份验证)。<br>  -v, --verbosity <LEVEL>  设置 MSBuild 详细程度。允许值为 q[uiet]、m[inimal]、n[ormal]、d[etailed] 和 diag[nostic]。<br>  -a, --arch <arch>        目标体系结构。<br>  -?, -h, --help           显示命令行帮助。
复制代码
安装.Net CLI

详细步骤,请看第四单元 :数据迁移部分
  1. $ dotnet tool install -g --version 6.0.4 dotnet-ef
复制代码
常用选项

选项Short说明--json 显示 JSON 输出。--context -c要使用的 DbContext 类。 仅类名或完全限定命名的空间。 如果省略此选项,EF Core 将查找上下文类。 如果有多个上下文类,则此选项是必需的。--project -p目标项目的项目文件夹的相对路径。 默认值是当前文件夹。--startup-project -s启动项目的项目文件夹的相对路径。 默认值是当前文件夹。--framework  目标框架目标框架名字对象。 当项目文件指定了多个目标框架,并且你想要选择其中一个目标框架时,请使用此选项。--configuration  生成配置,例如 Debug 或 Release。--runtime  要为其还原包的目标运行时的标识符。 有关运行时标识符 (RID) 的列表,请参阅 RID 目录。--no-build 请勿生成项目。 旨在在生成处于最新状态时使用。--help-h显示帮助信息。--verbose-v显示详细输出。--no-color 请勿为输出着色。--prefix-output 具有级别的前缀输出。  
 
视频配套链接:课程简介 (cctalk.com)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4