目录
c# 中的 nhibernate 是什么?
如何在 C# 中使用 nhibernate?
c# 中的 nhibernate 入门
在c#中使用nhibernate开发项目
c# 中的 nhibernate 示例
结论
首页 后端开发 C#.Net教程 C# 中的休眠

C# 中的休眠

Sep 03, 2024 pm 03:03 PM
c# c# tutorial

NHibernate 是一个非常流行的全功能工具,可以用作 Microsoft .Net 平台中对象关系映射的解决方案。它是Hibernate 的端口之一。通过使用这个框架,我们可以将面向对象的领域模型映射到传统的关系数据库。在这篇 C# 中的 nhibernate 文章中,我们将通过示例了解什么是 C# 中的 NHibernate、如何在其中工作和开发项目、如何开始并查看其实现。

c# 中的 nhibernate 是什么?

NHibernate 的主要功能是将 C# 或其他平台(例如 .Net)中的类映射到关系数据库(例如 MySQL)中的表。这也意味着NHibernate正在将CLR的数据类型转换为SQL。 NHibernate 还负责查询和检索数据,并且不需要生成 SQL 命令,因为 NHibernate 也可以处理这些问题。因此,开发人员无需担心对象转换。该应用程序还对许多 SQL 数据库保持可移植性,几乎没有性能开销。

如何在 C# 中使用 nhibernate?

您需要安装 NHibernate 并拥有一个用于编码的编辑器。此外,您还应该有一个将在应用程序中使用的数据库,例如 MySQL。我们可以使用 Sublime Text、Visual Studio、Eclipse 或任何其他编辑器来创建 NHibernate 项目。最受推荐的编辑器是 Visual Studio。视觉工作室的屏幕如下所示 –

c# 中的 nhibernate 入门

您可以使用以下方法下载 NHibernate DLL –

  • 从 Github 获取源代码 – 您可以从此链接下载 NHibernate 源代码的 zip 文件 – https://github.com/nhibernate/nhibernate-core。页面将如下所示,您必须单击“代码”按钮才能选择下载 zip 文件 –

C# 中的休眠

  • 通过使用软件包管理器 NuGet – 如果您有 NuGet 软件包管理器,那么您可以转到管理软件包选项,然后单击安装 NHibernate。包管理器窗口如下所示 –

C# 中的休眠

  • 您可以从 SourceForge 下载 NHibernate 的 zip 文件。您可以检查以下网站以从 SourceForge 站点下载 NHibernate – https://sourceforge.net/projects/nhibernate/。该网站的主页如下所示 –

C# 中的休眠

一旦您获得了 NHibernate 的 zip 文件,您只需将其解压到特定目录中的特定文件夹中即可。现在,您只需引用该目录即可轻松在项目中添加 NHibernate DLL 的引用。

在c#中使用nhibernate开发项目

用 C# 创建 NHibernate 项目非常简单,您只需要在系统上安装 Visual Studio 代码编辑器即可。请注意,Visual Studio 的版本应为 2008 或更高版本。在 C# 中使用 NHibernate 创建项目所需遵循的步骤如下所示 –

  • 在视觉工作室中创建一个空白项目。为此,通过在窗口的开始搜索框中搜索或单击您在任何地方创建的快捷方式的图标来打开 Visual Studio 编辑器。单击“文件”选项,选择打开的文件夹,并确保您已为项目创建了一个新文件夹。视觉窗口如下所示 –

C# 中的休眠

  • 说到 NHibernate 项目,里面应该有 4 个主要部分,分别是 –
  1. 要将应用程序的数据映射到 POCO,您将需要一个休眠映射文件
  2. hibernate的配置文件hibernating.cfg
  3. POCO 是普通的旧 CLR 对象
  4. 在apx或主类中查看MVC的页面。

c# 中的 nhibernate 示例

首先,我们将在数据库中创建一个表,例如 Educba_writers。我们在 MySQL 中的表如下所示 –

C# 中的休眠

现在,我们将创建一个名为 EducbaWriterHiber 的新 Web 项目,并将其设置在目录 http://localhost/EducbaWriterHiber 中。然后我们将添加 NHibernate.dll 的引用。如果您使用 Visual Studio 编辑器,它会自动复制项目中的所有依赖项和库。然后您将创建用于映射的 XML 文件,如下所示 –

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" auto-import="true" assembly="EducbaWriterHiber" namespace="EducbaWriterHiber.Models">
<class name="Educba_writers" table="Educba_writers" dynamic-update="true" xmlns="urn:nhibernate-mapping-2.2">
<cache usage="read-write"/>
<id name="Id" column="writer_id" type="int">
<generator class="native" />
</id>
<property name="f_name" />
<property name="l_name" />
<property name="email_id" />
<property name="mobile_number" />
<property name="join_date" />
<property name="domain_id" />
<property name="pay_amount" />
<property name="guide_id" />
<property name="department_id" />
</class>
</hibernate-mapping>
登录后复制

现在,我们将创建一个新的配置文件 hibernate.cfg.xml,或者在 Web 中注册该条目。配置。此后,您可以创建名为 Educbawriter 的 POCO 文件,如下所示 –

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace EMPNHibernate.Models
{
public class Employee
{
public virtual int writer_id { get; set; }
public virtual string f_name { get; set; }
public virtual string l_name { get; set; }
public virtual string email_id { get; set; }
public virtual string mobile_number { get; set; }
public virtual string join_date { get; set; }
public virtual string domain_id { get; set; }
public virtual string pay_amount { get; set; }
public virtual string guide_id" />
public virtual string department_id" />
}
}
登录后复制

现在,我们将创建 ASX 页面的主类,它可以用作单例类,其中包含 NHibernate 会话工厂类 –








Create an entry in Web.config
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace EMPNHibernate.Models
{
public class Employee
{
public virtual int writer_id { get; set; }
public virtual string f_name { get; set; }
public virtual string l_name { get; set; }
public virtual string email_id { get; set; }
public virtual string mobile_number { get; set; }
public virtual string join_date { get; set; }
public virtual string domain_id { get; set; }
public virtual string pay_amount { get; set; }
public virtual string guide_id" />
public virtual string department_id" />
}
}
using System.Web;
using NHibernate;
using NHibernate.Cfg;
namespace EducbaWriterHiber
{
public class EducbaWriterHiberSession
{
public static ISession OpenSession()
{
var sampleConfig  = new Configuration();
sampleConfig.Configure();
ISessionFactory sampleSessFactory = sampleConfig.BuildSessionFactory();
return sampleSessFactory.OpenSession();
}
}
}
登录后复制

最后一件事是关闭会话 –

您可以看到输出被转换,如下所示 –

C# 中的休眠

结论

C# 中的 NHibernate 可以用作 ORM(即对象关系映射)的开源、免费框架。它是专门为 .Net 框架设计的,有助于创建持久层。

以上是C# 中的休眠的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使用 C# 的活动目录 使用 C# 的活动目录 Sep 03, 2024 pm 03:33 PM

使用 C# 的 Active Directory 指南。在这里,我们讨论 Active Directory 在 C# 中的介绍和工作原理以及语法和示例。

C# 序列化 C# 序列化 Sep 03, 2024 pm 03:30 PM

C# 序列化指南。这里我们分别讨论C#序列化对象的介绍、步骤、工作原理和示例。

C# 中的随机数生成器 C# 中的随机数生成器 Sep 03, 2024 pm 03:34 PM

C# 随机数生成器指南。在这里,我们讨论随机数生成器的工作原理、伪随机数和安全数的概念。

C# 数据网格视图 C# 数据网格视图 Sep 03, 2024 pm 03:32 PM

C# 数据网格视图指南。在这里,我们讨论如何从 SQL 数据库或 Excel 文件加载和导出数据网格视图的示例。

C# 中的阶乘 C# 中的阶乘 Sep 03, 2024 pm 03:34 PM

C# 阶乘指南。这里我们讨论 C# 中阶乘的介绍以及不同的示例和代码实现。

C# 中的模式 C# 中的模式 Sep 03, 2024 pm 03:33 PM

C# 模式指南。在这里,我们讨论 C# 中模式的介绍和前 3 种类型,以及其示例和代码实现。

C# 中的质数 C# 中的质数 Sep 03, 2024 pm 03:35 PM

C# 素数指南。这里我们讨论c#中素数的介绍和示例以及代码实现。

c#多线程和异步的区别 c#多线程和异步的区别 Apr 03, 2025 pm 02:57 PM

多线程和异步的区别在于,多线程同时执行多个线程,而异步在不阻塞当前线程的情况下执行操作。多线程用于计算密集型任务,而异步用于用户交互操作。多线程的优势是提高计算性能,异步的优势是不阻塞 UI 线程。选择多线程还是异步取决于任务性质:计算密集型任务使用多线程,与外部资源交互且需要保持 UI 响应的任务使用异步。

See all articles