C# ORM2024年8月29日 | 阅读 7 分钟 引言面向对象编程方法或技术,称为对象关系映射(ORM),可以更轻松地将关系数据库与面向对象编程语言结合起来。使用面向对象的方法,开发人员可以由于 ORM 方法论而与数据库进行交互。ORM 被用于许多编程语言,包括 C#。 本文将重点介绍 C# 中的 ORM。首先,我们将回顾 ORM 的基础知识、其优缺点以及它在 C# 中的工作原理。然后,我们将讨论 C# 中一些流行的 ORM 工具,例如 Entity Framework、NHibernate 和 Dapper。 ORM 基础知识ORM 是一种将面向对象模型映射到关系数据库模型的技术。它使程序员能够使用编程语言中的面向对象结构与数据库进行交互。换句话说,ORM 是一种将数据库用作面向对象数据源的方法。 使用 ORM,开发人员可以使用编程语言创建和操作数据库对象,而不是编写 SQL 查询。ORM 工具提供了一组 API,开发人员可以使用它们与数据库进行交互。这些 API 抽象了与数据库交互的复杂性,例如打开数据库连接、执行 SQL 语句和管理事务。 ORM 工具使用元数据将数据库表映射到编程语言中的对象。元数据包含有关数据库架构的信息,例如表名、列名、数据类型、主键和外键,以及表之间的关系。 ORM 的优点与传统的数据库编程相比,ORM 具有几个优势
ORM 通过减少与数据库交互所需的代码量来提高开发人员的生产力。开发人员可以使用面向对象的结构创建、读取、更新和删除数据库中的数据。
ORM 工具提供了一个抽象层,可以更轻松地维护应用程序。对象模型可以快速适应数据库模式的更改。
ORM 工具优化 SQL 查询和缓存以提高性能。
ORM 工具通过抽象数据库的底层细节来提供可移植性。开发人员可以在不更改应用程序代码的情况下切换到不同的数据库。 ORM 的缺点ORM 也有一些缺点
ORM 工具可能很复杂,需要经过学习过程才能有效使用。
虽然 ORM 工具可以提高性能,但如果使用不当,它们也可能引起性能问题。
ORM 工具可能不支持所有数据库功能,或者可能不够灵活,无法处理复杂查询。
ORM 工具在应用程序和数据库之间添加了一个开销层,这可能会影响性能。 ORM 在 C# 中的工作原理C# 支持许多 ORM 技术,使程序员能够以面向对象的方式与数据库进行交互。在本节中,我们将以 Entity Framework 为例,了解 ORM 在 C# 中的基本工作原理。 Entity Framework 是一个 ORM 工具,它提供了一组 API,用于使用 C# 与数据库进行交互。它允许开发人员使用面向对象的结构(如类、对象和LINQ(语言集成查询))来处理数据库。 使用 Entity Framework 的第一步是创建数据模型。由表示数据库模式的一组类构成数据模型。Entity Framework 使用元数据将类映射到数据库表。 要创建数据模型,开发人员可以使用 Entity Framework 的可视化设计器或 Code First 方法。使用可视化设计器,开发人员可以将数据库表拖放到设计表面上以创建数据模型。开发人员可以使用 Code First 创建反映数据库模式的 C# 类,Entity Framework 会自动创建数据库模式。 创建数据模型后,开发人员可以使用 Entity Framework 的 API 与数据库进行交互。例如,开发人员可以使用 LINQ 查询从数据库中检索数据。 LINQ 是 C# 中的一项语言功能,允许开发人员使用熟悉的编程结构(如 if 语句、循环和 lambda 表达式)编写查询。Entity Framework 将LINQ 查询转换为SQL语句,使程序员能够以面向对象的方式与数据库进行交互。 以下是使用 LINQ 通过 Entity Framework 从数据库检索数据的示例 C# 代码 在此示例中,我们创建了 MyDbContext 类的一个新实例,该类是 DbContext 的子类,并使用 LINQ 查询从数据库中检索居住在纽约的客户。LINQ 查询由 Entity Framework 转换为SQL并 against 数据库执行。然后,我们循环遍历结果并显示客户的姓名和城市。 此外,Entity Framework 还提供了用于在数据库中添加、更新和删除数据的 API。例如,要向数据库添加新客户,我们可以创建 Customer 类的实例,将其添加到 Customers DbSet 字段,然后使用 SaveChanges() 函数将更改保存到数据库。 C# 代码 在此示例中,创建了 Customer 类,并设置了其属性。然后,在将客户添加到 Customers DbSet 属性后,我们调用 SaveChanges() 函数将更改持久化到数据库。 C# 中流行的 ORM 工具C# 中有几种流行的 ORM 工具,每种工具都有其优点和缺点。在本节中,我们将讨论三种流行的 ORM 工具:Entity Framework、NHibernate和Dapper。 实体框架 Entity Framework 是一个成熟且功能丰富的 ORM 工具,广泛用于.NET生态系统。它提供了一系列 API,用于在处理数据库时采用面向对象的方法。Entity Framework 支持创建数据模型的 Code First 和 Database First 方法。 Entity Framework 具有几个优点,例如
Entity Framework 也有一些缺点,例如 由于其抽象层而产生的开销。
NHibernate NHibernate 是一个开源 ORM 工具,广泛用于 Java 生态系统,并有一个 .NET 移植。它提供了一系列 API,用于在处理数据库时采用面向对象的方法。NHibernate 支持创建数据模型的 Code First 和 Database First 方法。 NHibernate 具有几个优点,例如
NHibernate 也有一些缺点,例如
Dapper Dapper 是一个轻量级 ORM 工具,提供了一组 API,用于以微型 ORM 的方式与数据库进行交互。Dapper 的设计简单快捷,并专注于性能而非抽象。Stack Overflow 和 Microsoft 等几家大型公司使用 Dapper,它已在 .NET 生态系统中广受欢迎。 Dapper 具有几个优点,例如
Dapper 也有一些缺点,例如
选择合适的 ORM 工具选择合适的 ORM 工具取决于几个因素,例如项目的规模和复杂性、开发团队的经验水平以及应用程序的性能要求。以下是选择合适 ORM 工具的一些规则或指南
结论ORM 工具是当前软件开发的重要组成部分,它们使程序员能够以面向对象的方式与数据库进行交互。在 .NET 生态系统中,有几种流行的 ORM 工具,例如Entity Framework、NHibernate和Dapper,它们各有优缺点。选择合适的 ORM 工具取决于几个因素,例如项目的规模和复杂性、开发团队的经验水平以及应用程序的性能要求。无论选择哪种 ORM 工具,都必须正确使用它,以避免性能问题和其他陷阱。通过选择合适的 ORM 工具并正确使用,开发人员可以提高生产力,并创建健壮且可扩展的应用程序。 下一个主题C# 中的 SignalR |
我们请求您订阅我们的新闻通讯以获取最新更新。