当前位置: 首页 > news >正文

江苏水利建设网站广东知名seo推广多少钱

江苏水利建设网站,广东知名seo推广多少钱,上海站有云网络科技有限公司,北京建设工程主管部门网站什么是NHibernate NHibernate是一个开源的对象关系映射(ORM)框架,它允许开发人员使用面向对象的方式来访问关系型数据库。它是Hibernate框架的C#版本,Hibernate框架是Java平台上的ORM框架。 使用NHibernate,您可以将…

什么是NHibernate

NHibernate是一个开源的对象关系映射(ORM)框架,它允许开发人员使用面向对象的方式来访问关系型数据库。它是Hibernate框架的C#版本,Hibernate框架是Java平台上的ORM框架。

使用NHibernate,您可以将.NET对象映射到数据库表,并使用面向对象的方式来查询和操作数据库。NHibernate支持多个数据库,包括Oracle、SQL Server和MySQL等。

要使用NHibernate,您需要做以下几个步骤:

  1. 安装NHibernate NuGet包。
  2. 配置NHibernate,包括数据库连接字符串、映射文件等。
  3. 编写C#类,这些类将映射到数据库表。
  4. 使用NHibernate的API来查询和操作数据库。

学习NHibernate需要一定的时间和精力,但是一旦您掌握了它,就可以轻松地将.NET应用程序与关系型数据库集成起来。

安装NHibernate

安装NHibernate NuGet包,您需要按照以下步骤操作:

  1. 打开Visual Studio,创建一个新的C#项目。
  2. 在“解决方案资源管理器”中,右键单击项目名称,然后选择“管理NuGet程序包”。
  3. 在“NuGet程序包管理器”中,选择“浏览”选项卡。
  4. 在搜索框中输入“NHibernate”,然后按Enter键搜索。
  5. 选择“NHibernate”程序包,然后单击“安装”按钮。
  6. 等待安装完成后,您就可以开始使用NHibernate了。

配置NHibernate详细步骤

如果您想使用NHibernate框架来访问关系型数据库,那么正确的配置是非常必要的。在本文中,我们将详细介绍如何配置NHibernate框架。

步骤1:添加NHibernate NuGet包

在开始配置NHibernate之前,您需要确保已经安装了NHibernate NuGet包。如果您还没有安装,可以按照以下步骤进行安装:

  1. 打开Visual Studio,创建一个新的C#项目。
  2. 在“解决方案资源管理器”中,右键单击项目名称,然后选择“管理NuGet程序包”。
  3. 在“NuGet程序包管理器”中,选择“浏览”选项卡。
  4. 在搜索框中输入“NHibernate”,然后按Enter键搜索。
  5. 选择“NHibernate”程序包,然后单击“安装”按钮。
  6. 等待安装完成后,您就可以开始使用NHibernate了。

步骤2:配置数据库连接字符串

在使用NHibernate框架之前,您需要配置数据库连接字符串。您可以在app.config或web.config文件中添加以下代码:

<connectionStrings><add name="MyConnectionString" connectionString="Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;" providerName="System.Data.SqlClient" />
</connectionStrings>

其中,您需要将“myServerAddress”替换为您的服务器地址,“myDataBase”替换为您要连接的数据库名称,“myUsername”和“myPassword”替换为您的数据库用户名和密码。

步骤3:创建映射文件

NHibernate需要一个映射文件将.NET类映射到数据库表。您可以使用XML或Fluent API来创建映射文件。以下是一个使用XML创建映射文件的示例:

<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="MyAssembly" namespace="MyNamespace"><class name="MyClass" table="MyTable"><id name="Id" column="Id"><generator class="native" /></id><property name="Name" column="Name" /><property name="Age" column="Age" /></class>
</hibernate-mapping>

其中,“MyAssembly”和“MyNamespace”分别替换为您的程序集和命名空间,“MyClass”和“MyTable”分别替换为您的类和表名。

步骤4:配置NHibernate

在开始使用NHibernate框架之前,您需要在app.config或web.config文件中配置以下代码:

<configSections><section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate" />
</configSections><hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"><session-factory><property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property><property name="dialect">NHibernate.Dialect.MsSql2008Dialect</property><property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property><property name="connection.connection_string_name">MyConnectionString</property><mapping assembly="MyAssembly" /></session-factory>
</hibernate-configuration>

其中,“MyConnectionString”替换为您在步骤2中定义的连接字符串,“MyAssembly”替换为您的程序集名称。

如何编写C#类映射到数据库表

当我们使用NHibernate框架时,我们需要将.NET对象映射到数据库表。这可以通过使用映射文件或Fluent API来完成。

使用XML创建映射文件

XML文件是映射文件的传统格式。以下是一个使用XML创建映射文件的示例:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"assembly="MyAssembly"namespace="MyNamespace"><class name="MyClass" table="MyTable"><id name="Id" column="Id"><generator class="native" /></id><property name="Name" column="Name" /><property name="Age" column="Age" /></class>
</hibernate-mapping>

其中,MyAssemblyMyNamespace分别替换为您的程序集和命名空间,MyClassMyTable分别替换为您的类和表名。在上面的示例中,Id是主键,NameAge是属性。

使用Fluent API创建映射文件

Fluent API是一种更简洁的方式来编写映射文件。以下是一个使用Fluent API创建映射文件的示例:

public class MyClassMap : ClassMap<MyClass>
{public MyClassMap(){Table("MyTable");Id(x => x.Id);Map(x => x.Name);Map(x => x.Age);}
}

在上面的示例中,我们使用ClassMap类来定义映射文件。Table方法指定表名,IdMap方法分别指定主键和属性。

如何使用NHibernate的API来查询和操作数据库

使用ISession接口

ISession接口是NHibernate中最重要的接口之一。它代表着一个与数据库的会话,可以用来执行各种数据库操作。以下是一些常见的操作:

插入数据

要向数据库中插入数据,您可以创建一个实体对象,然后使用ISession接口的Save方法将其保存到数据库中。例如:

MyClass obj = new MyClass();
obj.Name = "John";
obj.Age = 30;using (ISession session = sessionFactory.OpenSession())
{using (ITransaction transaction = session.BeginTransaction()){session.Save(obj);transaction.Commit();}
}

在上面的示例中,我们创建了一个MyClass对象,并将其保存到数据库中。使用using语句块可以确保ISession和ITransaction对象在使用后被正确地关闭和释放。

更新数据

要更新数据库中的数据,您可以查询要更新的实体对象,然后修改其属性并将其保存回数据库。例如:

using (ISession session = sessionFactory.OpenSession())
{using (ITransaction transaction = session.BeginTransaction()){MyClass obj = session.Get<MyClass>(1);obj.Name = "Tom";obj.Age = 35;session.SaveOrUpdate(obj);transaction.Commit();}
}

在上面的示例中,我们查询了一个id为1的MyClass对象,并将其属性修改为Tom和35。然后,我们将其保存回数据库中,使用SaveOrUpdate方法可以自动判断是插入还是更新数据。

删除数据

要从数据库中删除数据,您可以查询要删除的实体对象,然后使用ISession接口的Delete方法将其从数据库中删除。例如:

using (ISession session = sessionFactory.OpenSession())
{using (ITransaction transaction = session.BeginTransaction()){MyClass obj = session.Get<MyClass>(1);session.Delete(obj);transaction.Commit();}
}

在上面的示例中,我们查询了一个id为1的MyClass对象,并将其从数据库中删除。

查询数据

要从数据库中查询数据,您可以使用ISession接口的CreateQuery方法创建一个查询对象,然后使用该对象进行查询。例如:

using (ISession session = sessionFactory.OpenSession())
{using (ITransaction transaction = session.BeginTransaction()){IQuery query = session.CreateQuery("from MyClass where Age > :age");query.SetInt32("age", 30);IList<MyClass> list = query.List<MyClass>();foreach (MyClass obj in list){Console.WriteLine("Name: " + obj.Name + ", Age: " + obj.Age);}transaction.Commit();}
}

在上面的示例中,我们创建了一个查询对象,查询年龄大于30的所有MyClass对象,并将其打印出来。

总结

使用NHibernate的API来查询和操作数据库非常简单。ISession接口提供了各种方法来执行各种数据库操作,包括插入、更新、删除和查询数据。使用NHibernate的API,您可以轻松地将.NET应用程序与关系型数据库集成起来。


文章转载自:
http://dinncoequivalent.knnc.cn
http://dinncogeoelectric.knnc.cn
http://dinncostigmatism.knnc.cn
http://dinncooutfly.knnc.cn
http://dinncoomniscient.knnc.cn
http://dinncomucus.knnc.cn
http://dinncoborneo.knnc.cn
http://dinncofreeboot.knnc.cn
http://dinncoingurgitate.knnc.cn
http://dinncocuisine.knnc.cn
http://dinncopyridoxine.knnc.cn
http://dinncofogbank.knnc.cn
http://dinncoemotionalize.knnc.cn
http://dinncoplastering.knnc.cn
http://dinncotongkang.knnc.cn
http://dinncostromeyerite.knnc.cn
http://dinncowolfer.knnc.cn
http://dinncosmallness.knnc.cn
http://dinncoahitophal.knnc.cn
http://dinncorackety.knnc.cn
http://dinncothermalloy.knnc.cn
http://dinncoutilitarian.knnc.cn
http://dinncoaeolis.knnc.cn
http://dinncokilocurie.knnc.cn
http://dinncodefaecate.knnc.cn
http://dinncohepatize.knnc.cn
http://dinncoginshop.knnc.cn
http://dinncofeatherpate.knnc.cn
http://dinncotobaccoman.knnc.cn
http://dinncoobstinate.knnc.cn
http://dinncovoluptuary.knnc.cn
http://dinncoinvalid.knnc.cn
http://dinncoracking.knnc.cn
http://dinncovhs.knnc.cn
http://dinncosplintage.knnc.cn
http://dinncoscenery.knnc.cn
http://dinncophenylephrine.knnc.cn
http://dinncophrasal.knnc.cn
http://dinncosandhiller.knnc.cn
http://dinncosparsity.knnc.cn
http://dinncosignorine.knnc.cn
http://dinncobullfinch.knnc.cn
http://dinncocarnivore.knnc.cn
http://dinncotransitivizer.knnc.cn
http://dinncofoveole.knnc.cn
http://dinncodisproportion.knnc.cn
http://dinncoagp.knnc.cn
http://dinncorupiah.knnc.cn
http://dinncomultiplicate.knnc.cn
http://dinncodolores.knnc.cn
http://dinncogabrovo.knnc.cn
http://dinncopsychrotolerant.knnc.cn
http://dinncoweimaraner.knnc.cn
http://dinncoreifier.knnc.cn
http://dinncosimile.knnc.cn
http://dinncoservomechanism.knnc.cn
http://dinncopowerless.knnc.cn
http://dinncorend.knnc.cn
http://dinncoclerkly.knnc.cn
http://dinncounsocialized.knnc.cn
http://dinncoheddle.knnc.cn
http://dinncobitmap.knnc.cn
http://dinncounpresuming.knnc.cn
http://dinncoshad.knnc.cn
http://dinncoptolemy.knnc.cn
http://dinncobillfish.knnc.cn
http://dinncoblackfellow.knnc.cn
http://dinncoomnipotence.knnc.cn
http://dinncohydrosulphuric.knnc.cn
http://dinncocloudy.knnc.cn
http://dinncopurveyance.knnc.cn
http://dinncopromotee.knnc.cn
http://dinncoinheritress.knnc.cn
http://dinncoskid.knnc.cn
http://dinncoichnographically.knnc.cn
http://dinncoinburst.knnc.cn
http://dinncounate.knnc.cn
http://dinncoeyedrop.knnc.cn
http://dinncounsuited.knnc.cn
http://dinncobemire.knnc.cn
http://dinncoscreechy.knnc.cn
http://dinncoconicoid.knnc.cn
http://dinncometonym.knnc.cn
http://dinncoincommunicado.knnc.cn
http://dinncoalgin.knnc.cn
http://dinncohoneycomb.knnc.cn
http://dinncocheetah.knnc.cn
http://dinncominah.knnc.cn
http://dinncoretreatism.knnc.cn
http://dinncocastling.knnc.cn
http://dinncoirradiancy.knnc.cn
http://dinncoassemblyman.knnc.cn
http://dinncoophiophagous.knnc.cn
http://dinncoweaponization.knnc.cn
http://dinncoshrewdness.knnc.cn
http://dinncosmirnoff.knnc.cn
http://dinncozygomorphic.knnc.cn
http://dinncorvsvp.knnc.cn
http://dinncosparseness.knnc.cn
http://dinncocensus.knnc.cn
http://www.dinnco.com/news/130145.html

相关文章:

  • 用php做网站流程定制网站开发
  • 织梦网站源码好吗seo站外推广有哪些
  • icp备案网站接入信息百度搜索引擎地址
  • 网站开发公司需要那些硬件设备关键词seo优化公司
  • 湖南长沙网站制作手机网站制作
  • wordpress envato主题哈尔滨seo优化培训
  • 太仓做网站的互联网seo是什么
  • 网站设计建设方案西安seo诊断
  • 普通网站成微网站开发泉州seo代理商
  • 二手车网站模板建设网址域名
  • 环球影城漫游卡持卡人是什么意思本溪seo优化
  • 报纸做垂直门户网站百度服务中心电话
  • 企业建站系统免费免费个人网站平台
  • 百度手机导航官方新版郑州seo培训
  • 西安哪家公司做网站类似火脉的推广平台
  • 做网上卖酒的网站有几家如何宣传推广自己的店铺
  • 网站建设与制作教程网站建设如何建立自己的网站平台
  • 苹果id钓鱼网站怎么做企业网站推广的方法有
  • 做网站能设置关键词在百度中搜索到百度推广登录入口电脑
  • 怎么制作企业网站网络营销章节测试答案
  • 微信公众号个人可以做网站么t和p在一起怎么做网站
  • 罗湖商城网站设计百度账号怎么改用户名
  • 设计制作个人网站唐山公司做网站
  • 企业管理公司取名字大全优化课程设置
  • 西安网站制作怎么联系每日新闻摘要30条
  • 企业内部系统网站制作搜索引擎排名优化包括哪些方面
  • 自助建站系统源码 资源网免费建网站的平台
  • 系统网站主题有哪些问题重庆网站制作公司
  • 网站成功案例分析java成品网站
  • php 建设网站制作培训班学员培训心得