摘要:
前天一篇文章中我说NHibernate的集合类型实现有些“尴尬”,它无法使用自定义集合类型,设计也有些古怪——不过在许多朋友的指点下,我意识到NHibernate是可以使用自定义集合类型的。至于它的设计是否合理(或者说是用是否方便?)……这就是这几篇文章中想要探讨的内容了。不少朋友给出了一些自定义集合类型的示例链接,我参考之余也自己找了一些资料,慢慢尝试,也终于有了一些体会。 阅读全文
推荐排行榜
我对NHibernate的感受(3):有些尴尬的集合支持
2009-10-08 21:59 by Jeffrey Zhao, 15192 阅读, 收藏,
摘要:
既然是一个ORM框架,那么自然是将O这一端映射R上。至于集合,是O这方面最常见,也是R这一边非常容易表示的关系。例如,一个问题(Question)可以包含多个回答(Answer)。不过,NHibernate需要“一锅端”地设置集合属性,它没有保留自定义集合的逻辑。此外,在更新集合数据的时候,它也会出现多余的数据加载。 阅读全文
趣味编程:C#中Specification模式的实现(参考答案 - 下)
2009-09-29 10:35 by Jeffrey Zhao, 12438 阅读, 收藏,
摘要:
上一篇文章中我们利用C#语言的特性实现了一种轻量级的Specification模式,它的关键在于抛弃了具体的Specification类型,而是使用一个委托对象代替唯一关键的IsSatisfiedBy方法逻辑。据我们分析,其优势之一在于使用简单,其劣势之一在于无法静态表示。但是它们还都是在处理“业务逻辑”,如果涉及到一个用于LINQ查询或其他地方的表达式树,则问题就不那么简单了——但也没有我们想象的那么复杂。 阅读全文
语言特性与API设计
2009-09-25 17:12 by Jeffrey Zhao, 13059 阅读, 收藏,
摘要:
我平时的主要工作之一,便是编写一些基础及通用的类库,能够在项目中大量复用。换句话说,我的工作目的,是让其他开发人员可以更好地完成工作。因此,如何设计更容易使用的API是我经常要考虑的东西,偶尔也会有一些体会。而现在这些内容,是我在为Functional Reactive Programing写“参考答案”的时候忽然“总结”出来的想法。可能比较简单,但我想也是设计API是需要考虑的一些内容。 阅读全文
我对NHibernate的感受(1):对延迟加载方式的误解
2009-09-24 14:04 by Jeffrey Zhao, 17483 阅读, 收藏,
摘要:
我用NHibernate时间不长,而NHibernate的复杂程度也决定了我无法像了解LINQ to SQL那样容易。不过在使用了一段时间过后,还是对它有一定体会。有欣喜,有误解,也有抱怨。总体来说,目前NHibernate是我最满意的ORM框架。之前我一直认为NHibernate使用了一种简单的延迟加载方式。但事实上,它使用了一种维持原有业务逻辑的延迟代理写法。如果您关注我的文章,会发现这就是我之前提出的最为理想的延迟代理实现方式,也是我在Eazy类库中使用的做法。惭愧啊。 阅读全文