首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

NHibernate学习笔记之一,Hello world!

NHibernate是一个面向.NET环境的对象/关系数据库映射框架,主要应用在数据持久层,其它的ORM框架一样用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。...元数据包含持久化类的声明属性到数据库的映射。该文件将POPO类型与数据表进行映射。User.hbm.xml内容如下所示。 <?xml version="1.0" encoding="utf-8" ?...NHibernateHelper.GetCurrentSession();                 ITransaction transaction = session.BeginTransaction();                 session.Save...(user);                 transaction.Commit();                 return user.Id;             }             ...总结:这个示例算是对Nhibernate学习的一个“Hello world”,内容中有不少是参照前辈们的文章,我只是学习分享学习。

58520
您找到你想要的搜索结果了吗?
是的
没有找到

Fluent NHibernate之旅(三)-- 继承

经过了“开篇”“简单映射”两篇文章,相信大家对Fluent NHibernate 有了一定的了解了,FluentNHibernate实际就是对 NHibernate 映射的一定扩展,我们能完全利用强类型...从这一篇开始,我们将使用Fluent NHibernate RC 1.0 版来进行演示,先前的代码,我会另外进行说明 继承 在OOP中,继承作为OO中重要的特性,如果NHibernate没有对它的支持,...好,我们假设我们的产品还有书手机,他们有各自自己的属性,我们就简单加一点属性,书有作者,手机有品牌型号,我们写这2个Entity Model: public class MobileProduct...其他方式 Table per concrete class(每个子类一张表),这种方式应该使用union-subclass标签,但FNT不支持这种方式,为什么呢,呵呵,因为这种方式不好,无论是从结构还是编写上来说...,都是不好的做法,尽量避免的做法,所以FNT索性不支持了,如果真的需要这种方式,那你就直接分开映射ClassMap吧,联合查询的话,或许就比较复杂了。

66480

Nhibernate_juan benet

步骤3:编写映射文件(Mapping File) 现在我们有了数据库表.Net类,我们还需要告诉NH怎样在数据库类之间映射.这就需要映射文件了.最简捷(也是可维护性最好的)方法就是为每一个类编写一个映射文件...驱动,连接到本地的nhibernate数据库,并且使用提供的用户密码.还会有其他的配置项,你可以参看文档....Configuration对象知道所有在.Net类后端数据库之间的映射关系, Configuration cfg = new Configuration(); cfg.AddAssembly(“NHibernate.Demo.QuickStart...that this object should be saved session.Save(newUser); // commit all of the changes to the DB and...close the ISession transaction.Commit(); session.Close(); 这就是NH的好处,大部分时间内你只用关心你的业务对象(BO).

36150

Entity Framework NHibernate的区别

从个人感受上看,NHibernate显然是从上而下(Top-down)的方式,天然的POCO支持就是最好的佐证。...其实ORMDP的存在就是要实现这两个方向的能力支持,否则就没有存在的必要,因为自上而下(Top-down)自下而上(Bottom-up)两种方式由来已久,解决这两个方向的问题,ORM工具或E/R模型编程未必是最好的方式...同样仔细想想Entity Framework(也许NHibernate也是)在从外向里(Outside-in)方向也提供了支持,这也就是Dsimmons为代表的EF大佬经常说的,Entity Framework... 不是简单的ORM工具,它主要是提供一个完全贴近现实的E/R模型,这个模型可以进行数据编程(DP),也可以建模进行数据表现,最重要的是这个模型可以被共享重用(目前比较成功的一个案例就是能被ADO.NET... Data Service 共享重用),另外一个方面SQL Server的功能再逐渐增强以及新近的LINQ等数据库+DP的功能混杂爆发,都在另外一个角度朝从下向上推进,这种情况下Mapping是可以限定在某些功能场景的

47850

Entity Framework NHibernate的区别

从个人感受上看,NHibernate显然是从上而下(Top-down)的方式,天然的POCO支持就是最好的佐证。...其实ORMDP的存在就是要实现这两个方向的能力支持,否则就没有存在的必要,因为自上而下(Top-down)自下而上(Bottom-up)两种方式由来已久,解决这两个方向的问题,ORM工具或E/R模型编程未必是最好的方式...同样仔细想想Entity Framework(也许NHibernate也是)在从外向里(Outside-in)方向也提供了支持,这也就是Dsimmons为代表的EF大佬经常说的,Entity Framework... Data Service 共享重用),另外一个方面SQL Server的功能再逐渐增强以及新近的LINQ等数据库+DP的功能混杂爆发,都在另外一个角度朝从下向上推进,这种情况下Mapping是可以限定在某些功能场景的...从上面的描述上可以很清楚的看出Entity FrameworkNHibernate的区别,虽然他们都是ORM工具,他们在ORM的各个方向的侧重是不一样.

87870

NHibernate 批量数据插入测试

NHibernate 批量数据插入测试 .Net 环境下测试 数据库环境以及 NHibernate 配置 SQL Server 环境为 VS2013 自带的 localdb v11.0, 对应的 NHibernate..., Data3 = random.NextDouble(), UpdateTime = DateTime.Now }; session.Save...(data); } session.Flush(); session.Clear(); } 经过测试发现, NHibernate 的 Session StatelessSession...生产环境测试结果 将测试数据库分别部署在 SQL Server 2012 MariaDB 内网的服务器上, 服务器硬件配置几乎一致, 数据库版本也与开发环境 一致, 反复运行测试, 结果大致如下:...测试总结 从上面的测试结果可以看出, mono .net 的性能是差不多的, 可以说是不相伯仲, MySQL 的性能也是不错的, 最终的结论是 mono + mysql 是可以值得信赖的。

1.1K10

NHibernate中关于Inverse的理解使用

在项目中NHibernate进行ORMapping,操作数据库变得非常简单,但是NHibernate中有很多特性不是很容易理解,比如Inverse这个功能就是其中的一个。...接下来举一个具体的例子,部门员工,一对多关系,部门D1,D2,员工U1U2,D1的Users里面有U1U2,U1对象引用D1,U2对象引用D2。...如果是改为Inverse=True,那么然后保存d1d2,那么对应的SQL是: NHibernate: INSERT INTO DEPARTMENT (NAME, DEPARTMENT_ID) VALUES...比如有员工E1E2,奖品A1A2,其是多对多关系,如果要设置E1员工获得A1A2奖,那么需要设置各自的集合: 1: Emp e1=new Emp(){Name = "E1"}; 2...mapping.HasManyToMany(a => a.Awards).Not.Inverse(); } } 这样设置了Mapping后,就可以生成正确的SQL语句,当然如果把C#代码中的6行7

44630
领券