NHibernate 是一个非常流行的全功能工具,可以用作 Microsoft .Net 平台中对象关系映射的解决方案。它是Hibernate 的端口之一。通过使用这个框架,我们可以将面向对象的领域模型映射到传统的关系数据库。在这篇 C# 中的 nhibernate 文章中,我们将通过示例了解什么是 C# 中的 NHibernate、如何在其中工作和开发项目、如何开始并查看其实现。
NHibernate 的主要功能是将 C# 或其他平台(例如 .Net)中的类映射到关系数据库(例如 MySQL)中的表。这也意味着NHibernate正在将CLR的数据类型转换为SQL。 NHibernate 还负责查询和检索数据,并且不需要生成 SQL 命令,因为 NHibernate 也可以处理这些问题。因此,开发人员无需担心对象转换。该应用程序还对许多 SQL 数据库保持可移植性,几乎没有性能开销。
您需要安装 NHibernate 并拥有一个用于编码的编辑器。此外,您还应该有一个将在应用程序中使用的数据库,例如 MySQL。我们可以使用 Sublime Text、Visual Studio、Eclipse 或任何其他编辑器来创建 NHibernate 项目。最受推荐的编辑器是 Visual Studio。视觉工作室的屏幕如下所示 –
您可以使用以下方法下载 NHibernate DLL –
一旦您获得了 NHibernate 的 zip 文件,您只需将其解压到特定目录中的特定文件夹中即可。现在,您只需引用该目录即可轻松在项目中添加 NHibernate DLL 的引用。
用 C# 创建 NHibernate 项目非常简单,您只需要在系统上安装 Visual Studio 代码编辑器即可。请注意,Visual Studio 的版本应为 2008 或更高版本。在 C# 中使用 NHibernate 创建项目所需遵循的步骤如下所示 –
首先,我们将在数据库中创建一个表,例如 Educba_writers。我们在 MySQL 中的表如下所示 –
现在,我们将创建一个名为 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(); } } } public virtual string department_id" />
最后一件事是关闭会话 –
您可以看到输出被转换,如下所示 –
C# 中的 NHibernate 可以用作 ORM(即对象关系映射)的开源、免费框架。它是专门为 .Net 框架设计的,有助于创建持久层。
以上是C# 中的休眠的详细内容。更多信息请关注PHP中文网其他相关文章!