Hello World
Spiga

标签:NHibernate

我对NHibernate的感受(4):令人欣喜的Interceptor机制

2009-10-13 13:45 by 老赵, 19540 visits
摘要:之前谈了NHibernate的几个方面,似乎抱怨的居多,不过这次我想谈一下我对Interceptor的感受,则基本上都是好话了。这并不一定是说Interceptor设计的又多么好(事实上它使用起来还是挺麻烦的),但是这的确也是我认为NHibernate超越LINQ to SQL,尤其是Entity Framework的又一个重要方面——因为Entity Framework本身也已经不差了。更重要的是,Interceptor机制让我得以实现我“理想中的”数据访问功能。当然现在只是浅尝辄止一番,我打算以后再慢慢地,详细地谈谈我所满意的“数据访问层”设计。 阅读全文

NHibernate自定义集合类型(下):自动维护双向关系

2009-10-12 00:49 by 老赵, 15354 visits
摘要:如果使用NHibernate自带的集合类型,其中一个问题就在于需要在代码中手动维护双向关系,迫使开发人员编写额外的代码。其实这就是集合自定义逻辑的一个应用方面。现在,既然我们已经得到了一个方便的自定义集合的解决方案,那么现在便把“自动维护双向关系”作为目标来实现一番,也算是一个非常典型的示例了。 阅读全文

NHibernate自定义集合类型(中):通用实现方式

2009-10-11 11:27 by 老赵, 15379 visits
摘要:上一片文章中我们观察了在代码中自定义一个基于Set的集合类型该怎么做,以及简单了解了一下NHibernate的这些自定义支持大致是如何工作的。不过文章最后还是留了两个问题,一是认为这种扩展方式不够通用,二是其中会出现的“重复”或是“反向依赖”。现在我们就需要在上文的基础上进行总结,提出一个通用的实现,可以方便我们构建自定义的集合类型。 阅读全文

NHibernate自定义集合类型(上):基本实现方式

2009-10-10 10:54 by 老赵, 23458 visits
摘要:前天一篇文章中我说NHibernate的集合类型实现有些“尴尬”,它无法使用自定义集合类型,设计也有些古怪——不过在许多朋友的指点下,我意识到NHibernate是可以使用自定义集合类型的。至于它的设计是否合理(或者说是用是否方便?)……这就是这几篇文章中想要探讨的内容了。不少朋友给出了一些自定义集合类型的示例链接,我参考之余也自己找了一些资料,慢慢尝试,也终于有了一些体会。 阅读全文

我对NHibernate的感受(3):有些尴尬的集合支持

2009-10-08 21:59 by 老赵, 14195 visits
摘要:既然是一个ORM框架,那么自然是将O这一端映射R上。至于集合,是O这方面最常见,也是R这一边非常容易表示的关系。例如,一个问题(Question)可以包含多个回答(Answer)。不过,NHibernate需要“一锅端”地设置集合属性,它没有保留自定义集合的逻辑。此外,在更新集合数据的时候,它也会出现多余的数据加载。 阅读全文

我对NHibernate的感受(2):何必到处都virtual

2009-09-24 15:09 by 老赵, 15270 visits
摘要:上一篇文章主要是在夸NHibernate实现的好,而这篇就完全是来抱怨的了。NHiberante有个毛病,就是如果是和数据库产生映射的类,就要求所有的public成员和protected成员必须是virtual的。这就让我觉得无厘头了,为什么没有任何关系的东西也要受到限制?我知道NHiberante要求将属性标记为virtual是为了延迟加载,但这又关没有映射的属性,甚至方法什么事情呢?虽然我现在明白了原因,但还是不能接受——因为我们在承受Java语言所带来的痛苦。 阅读全文

我对NHibernate的感受(1):对延迟加载方式的误解

2009-09-24 14:04 by 老赵, 16322 visits
摘要:我用NHibernate时间不长,而NHibernate的复杂程度也决定了我无法像了解LINQ to SQL那样容易。不过在使用了一段时间过后,还是对它有一定体会。有欣喜,有误解,也有抱怨。总体来说,目前NHibernate是我最满意的ORM框架。之前我一直认为NHibernate使用了一种简单的延迟加载方式。但事实上,它使用了一种维持原有业务逻辑的延迟代理写法。如果您关注我的文章,会发现这就是我之前提出的最为理想的延迟代理实现方式,也是我在Eazy类库中使用的做法。惭愧啊。 阅读全文

NHibernate中一对一关联的延迟加载

2009-08-17 09:08 by 老赵, 7059 visits
摘要:这篇文章谈论的其实只是一个小技巧,而且甚至于这个是由于我对NHibernate不够了解而造成的。因此,如果您有更好的做法也请不吝指出。这个问题也就是“如何实现NHibernate中一对一映射的延迟加载”。 阅读全文
1
使用Live Messenger联系我