普林库代表NHibernate。映射和实体。

普林库代表NHibernate。映射和实体。,nhibernate,fluent-nhibernate,codesmith,Nhibernate,Fluent Nhibernate,Codesmith,我最近发布了一个关于NHibernate的问题。这让我检查了Codesmith的NHibernate框架PLINQO 与此同时,我在他们的官方网站上阅读了一篇关于nhibernate的教程(当时我正在看Plinko生成的项目) 我不是NHibernate方面的专家,但我现在看到的(PLINQO生成的NHibernate项目)在我看来非常草率,几乎是一个灾难。它创建了一组“实体”,我猜这就是业务对象?我的眼睛一团糟 有人有过Codesmith的NHibernate的经验吗 有人能给我指一个NHib

我最近发布了一个关于NHibernate的问题。这让我检查了Codesmith的NHibernate框架PLINQO

与此同时,我在他们的官方网站上阅读了一篇关于nhibernate的教程(当时我正在看Plinko生成的项目)

我不是NHibernate方面的专家,但我现在看到的(PLINQO生成的NHibernate项目)在我看来非常草率,几乎是一个灾难。它创建了一组“实体”,我猜这就是业务对象?我的眼睛一团糟

有人有过Codesmith的NHibernate的经验吗

有人能给我指一个NHibernate的mc老爹吗。到目前为止,我已经发现了如此多的变体,以至于我已经被这一切所淹没


谢谢。

我在CodeSmith工具公司工作。您觉得生成的项目看起来有多马虎?你将如何改进它?我们尝试将实体(POCO)/hbm分开,以确保一致性和易用性(如Randy在上文中详细介绍的)。实体是直接从hbm文件中定义的内容生成的,可以在不丢失更改的情况下进行自定义

生成的项目遵循LINQtoSQL和实体框架的体系结构。我们认为这允许Microsoft堆栈上的开发人员在后端之间快速切换(NHibernate到EF或EF到NHibernate),同时最小化代码更改量。 生成的datacontext为您管理NHibernate会话,同时允许您访问查询扩展、缓存等。此外,您不会丢失任何核心NHibernate特性,因为我们只是扩展了核心库。所有核心功能都可以在DataContext的高级属性下使用


另外,发布问题和获得及时回复的最佳途径是via。

我经常使用NHibernate,生成的内容看起来很像NHibernate之上LinqToSql的语法糖,避免了最佳实践和许多不必要的复杂性。但老实说,你真正的问题是什么?我和“体验密码匠NH”?:我从来没有用过Plinko,但我只是看了一下,看了几段视频。这听起来是一个有趣的项目,但我个人不会使用它,因为我一开始并不喜欢代码生成器。PLINQO是NHibernate的包装器,因此当您使用它时,您放弃了NHibernate的许多功能,但您获得了代码一致性、易用性和智能代码生成功能。至于使用NHibernate,我个人将IRepository模式和Fluent NHibernate混合用于我的映射。@Firo,在遵循NHibernate最佳实践的同时,我们试图降低每一个复杂性并注重易用性。@RandyBurden我为CodeSmith工作……请注意上面的评论。。。代码生成可能像其他任何事情一样被滥用。我们相信,只有当它是适合于正确工作的正确工具时,才应该使用它(我们会告诉我们的客户是否有更好的工具)…在我看来,从EF和L2SQL切换到NHibernate的学习曲线是陡峭的,但您必须放弃L2SQL/EF所需的许多变通方法。1.自我实现的GUIDas实体?真正地2.没有枚举?3.生成的属性4上没有验证属性。在映射5中使用特定于数据库的引用。在POCOs中使用NHibernate。。。所以我很抱歉,也许sloppy不是正确的形容词。我的错。我只是期待着一些不同的东西。但我必须承认,5年来我一直在使用您的plinqo(linq to sql),它非常适合我的sql项目,因为linq to sql是到数据库中表的1:1映射。这就是我们喜欢听到的:)