首页  >  文章  >  后端开发  >  C# 中的休眠

C# 中的休眠

WBOY
WBOY原创
2024-09-03 15:03:54300浏览

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
上一篇:C# object compare下一篇:Iterators in C#