📝 NHibernate教程

30篇技术文档
  NHibernate教程

📅  最后修改于: 2020-11-19 05:29:11        🧑  作者: Mango

NHibernate是一个针对.NET框架而积极开发的,功能全面的开源对象关系映射器。它已用于成千上万的成功项目中。它建立在ADO.NET之上,当前版本是NHibernate 4.0.4。本教程将使您了解如何开始使用NHibernate。主要目标是完成它之后,您将对NHibernate是什么以及为什么需要NHibernate有了更好的了解,当然还学习了如何将NHibernate添加到项目中。本教程...

  NHibernate-概述

📅  最后修改于: 2020-11-19 05:29:37        🧑  作者: Mango

在本章中,我们将讨论NHibernate是什么,可以实现的所有平台,其优点以及与之相关的其他方面。什么是NHibernate?NHibernate是.NET框架的成熟,开放源代码对象关系映射器。它是积极开发的,功能齐全的,并已在数千个成功的项目中使用。它基于ADO.NET构建,当前版本是NHibernate 4.0.4。NHibernate是一个开源.NET对象关系映射器,并根据GNU较宽松通用公...

  NHibernate-建筑

📅  最后修改于: 2020-11-19 05:29:58        🧑  作者: Mango

如今,许多系统都采用分层体系结构进行设计,NHibernate也拥有这种体系结构,并且可以与该设计完美地结合使用。分层架构分层体系结构将系统分为多个组,其中每个组包含用于解决特定问题区域的代码,这些组称为层。大多数企业级应用程序使用由三层组成的高级应用程序架构–表示层业务层持久层例如,用户界面层(也称为表示层)可能包含用于构建网页和处理用户输入的所有应用程序代码。分层方法的一个主要好处是,您可以经...

  NHibernate-ORM

📅  最后修改于: 2020-11-19 05:30:20        🧑  作者: Mango

在真正开始使用NHibernate之前,我们需要了解其基础。 NHibernate是一种持久性技术,它基于对象关系映射或ORM的思想。什么是ORM?对象关系映射(ORM)是一种编程技术,用于在面向对象的编程语言中的不兼容类型系统之间转换数据。换句话说,这是将应用程序的业务对象映射到关系数据库表的概念,以便可以通过应用程序的对象模型轻松地访问和更新数据。如您所知,关系数据库提供了一种存储数据的好方法...

  NHibernate-环境设置

📅  最后修改于: 2020-11-19 05:30:42        🧑  作者: Mango

要开始使用NHibernate,我们将需要Visual Studio和NHibernate包。Visual Studio安装Microsoft提供了Visual Studio的免费版本,该版本还包含SQL Server,可以从https://www.visualstudio.com下载它。以下是安装步骤。步骤1-下载完成后,运行安装程序,然后将显示以下对话框。步骤2-单击安装按钮,它将开始安装过程...

  NHibernate-入门

📅  最后修改于: 2020-11-19 05:31:15        🧑  作者: Mango

在本章中,我们将研究如何使用NHibernate启动一个简单的示例。我们将构建一个简单的控制台应用程序。要创建控制台应用程序,我们将使用Visual Studio 2015,其中包含您需要创建的所有功能,并使用NHibernate包测试您的应用程序。以下是使用Visual Studio中可用的项目模板创建项目的步骤。步骤1-打开Visual Studio,然后单击文件→新建→项目菜单选项。步骤2-...

  NHibernate-基本ORM

📅  最后修改于: 2020-11-19 05:31:35        🧑  作者: Mango

在本章中,我们将介绍一些基本的映射,并且您将从上一章知道,我们拥有数据库表以及C#类定义。现在,我们需要一个映射,该映射说明如何将C#转换为数据库并再次转换。因此,让我们继续,右键单击解决方案资源管理器中的项目,然后选择添加→新建项,以添加新的XML文件。在名称字段中输入Student.hbm.xml。我们需要指定一个默认的程序集,它将是NHibernateDemoApp,并且还指定一个默认的名称...

  NHibernate-基本的CRUD操作

📅  最后修改于: 2020-11-19 05:32:11        🧑  作者: Mango

在本章中,我们将介绍基本的CRUD操作。既然我们的系统已经准备好启动,并且已经成功实现了我们的域Student类,那么我们还定义了映射文件并配置了NHibernate。现在,我们可以使用一些查询来执行CRUD操作。建立资料如您所见,NHibernateDemoDB数据库的Student表中没有数据。因此,要添加一些数据,我们需要执行添加/创建操作,如下所示。如您所见,我们已经创建了两个学生,然后调...

  NHibernate-Profiler

📅  最后修改于: 2020-11-19 05:32:44        🧑  作者: Mango

在本章中,我们将了解如何从数据库中检索,更新,创建和删除所有记录,以及如何精确执行这些查询?为了理解所有这些,我们可以简单地在配置中添加一个选项,该选项将SQL记录在控制台中。这是将记录SQL查询的简单语句-现在,我们在NHibernateDemoDB数据库的学生表中有两条记录。让我们从数据库中检索所有记录,如以下代码所示。因此,让我们继续运行该应用程序,您将看到以下输出-如您所见,select子...

  将IntelliSense添加到映射文件

📅  最后修改于: 2020-11-19 05:33:02        🧑  作者: Mango

在本章中,我们将IntelliSense添加到我们的NHibernate映射文件(* .hbm.xml文件)中。正如您在映射域Student类时观察到的那样,当前我们没有IntelliSense。提供可用的XML模式非常有用。因此,在本章中,您将了解如何在Visual Studio中为这些NHibernate XML文件添加IntelliSense。打开映射文件,您将看到XML菜单选项出现在主菜单...

  NHibernate-数据类型映射

📅  最后修改于: 2020-11-19 05:34:04        🧑  作者: Mango

在本章中,我们将介绍映射数据类型。映射实体非常简单,实体类始终使用<class>,<subclass>和<joined-subclass>映射元素映射到数据库表。值类型需要更多的东西,这是需要映射类型的地方。NHibernate能够映射各种各样的数据类型。这是受支持的最常见数据类型的列表。Mapping type.NET typeSystem.Data.DbTypeInt16System.Int1...

  NHibernate-配置

📅  最后修改于: 2020-11-19 05:34:30        🧑  作者: Mango

在本章中,我们将介绍NHibernate配置。我们有不同的方法可以配置NHibernate。它分为两个主要类别基于XML的配置基于代码的配置基于代码的配置NHibernate内置了基于代码的配置。它是在NHibernate 3周围引入的,到目前为止我们一直使用代码库配置。所有配置均在C#代码中指定。您可以在这里看到我们有了新的配置对象,然后使用NHibernate 3.1引入的过时配置来配置数据库...

  NHibernate-覆盖配置

📅  最后修改于: 2020-11-19 05:34:59        🧑  作者: Mango

在本章中,我们将介绍如何覆盖NHibernate配置。您只需要记住几件事。首先,NHibernate中的配置是可加的。因此,您不必仅使用单个xml文件,也不必仅使用基于代码的配置或流畅的NHibernate。您可以混合和匹配所有这些方法,具体取决于您希望如何配置应用程序。要记住的重要一点是,最后赢得配置。在以下示例中,您可以看到我们创建了配置对象,使用基于代码的配置对其进行配置,最后调用cfg.c...

  NHibernate-批次大小

📅  最后修改于: 2020-11-19 05:35:42        🧑  作者: Mango

在本章中,我们将介绍批量大小的更新。批处理大小允许您控制在单次往返中为支持的数据库到数据库的更新数量。自NHibernate 3.2起,更新批处理大小已被默认设置。但是,如果您使用的是较早版本,或者需要调整NHibernate应用程序,则应查看更新批处理大小,这是一个非常有用的参数,可用于调整NHibernate的性能。实际上,批大小控制着将一组插入到数据库中的插入次数。目前,只有SQL Serv...

  NHibernate-缓存

📅  最后修改于: 2020-11-19 05:36:03        🧑  作者: Mango

在本章中,我们将介绍NHibernate应用程序中的缓存如何工作。它具有对缓存的内置支持。它看起来是一个简单的功能,但实际上,它是最复杂的功能之一。我们将从一级缓存开始。一级缓存默认情况下,NHibernate中启用了此缓存机制,我们不需要为缓存做任何事情。为了理解这一点,让我们看一个简单的示例,因为您可以看到我们的数据库中有两个记录。现在在此示例中,我们将检索ID为1的学生,并且将使用相同的会话...