2012-11-14 86 views
0

我最近发布了一个关于NHibernate的问题。这导致我检查Codesmith的NHibernate框架PLINQO。PLINQO for NHibernate。映射和实体。

与此同时,我正在他们的官方网站上阅读关于nhibernate的教程(因为我正在查看PLINQO生成的项目)。

我不是NHibernate的专家,但我现在看到的东西(PLINQO生成的NHibernate项目)在我看来非常草率,几乎是一个灾难的秘诀。它创建了一套我认为是业务对象的“实体”?我眼中一片混乱。

有没有人有使用Codesmith的NHibernate的经验?

任何人都可以指我一个NHibernate的MC爸爸。到目前为止,我已经发现了很多变体,所以我已经不知所措了。

谢谢你。

+0

我用NHibernate很多,生成的东西看起来很像NHibernate的LinqToSql的语法糖,避免了最佳做法和很多不必要的复杂性。但老实说,你真正的问题是什么?我和“体验CodeSmith的NH”? :没有 – Firo

+0

我从来没有使用PLINQO,但我只是看了一下,看了一些视频。这听起来像一个有趣的项目,但我个人不会使用它,因为我不是一个代码生成器的粉丝开始。 PLINQO是NHibernate的一个包装,所以当你使用NHibernate的时候,你会放弃很多NHibernate的强大功能,但是你可以获得代码一致性,易用性和智能代码生成功能。至于使用NHibernate,我个人使用IRepository 模式和流利NHibernate的混合物作为我的映射。 –

+0

@Firo,我们尝试减少每一个复杂性,并专注于易用性,同时遵循NHibernate最佳实践。 –

回答

0

我为CodeSmith Tools工作。你觉得生成的项目看起来马虎么?你会如何改进它?我们试图将实体(POCOs)/ hbm分离出来以保证一致性和易用性(如上面Randy所述)。这些实体直接根据hbm文件中定义的内容生成,可以自定义,而不会丢失您的更改。

生成的项目遵循Linq-to-SQL和Entity Framework的体系结构。我们认为这可以让Microsoft Stack的开发人员快速切换后端(NHibernate到EF或EF到NHibernatE),同时最大限度地减少代码更改量。 生成的datacontext为您管理NHibernate会话,同时让您访问查询扩展,缓存等等。此外,您不会因为我们扩展核心库而失去任何核心NHibernate功能。所有核心功能都可以在DataContext下的高级属性中使用。

P.S.,发布问题并及时回复的最佳地点是our forums

+0

IMO从EF和L2SQL切换到NHibernate的学习曲线非常陡峭,但是您会不得不忘记L2SQL/EF所需的很多解决方法。 ** 1。**自我实现的GUIDas实体?真? ** 2。**否枚举? ** 3.没有生成属性的验证属性** 4.使用数据库特定的引用映射** 5.使用NHibernate在POCOs中......等等 – Firo

+1

对不起,也许马虎不是正确的形容词。我的错。我只是期待着不同的东西。但我必须承认,5年来,我已经使用你的plinqo(linq to sql),它适合我的sql项目,因为linq to sql对数据库中的表格是1对1的映射。 –

+0

这就是我们喜欢听到的:) –