6

刚开始学习NHiberate。为每个数据库表编写适当的 hbm.xml 配置文件似乎相当乏味。

问题是 NHibernate 可以读入表并自动检索关系和所需的配置文件以及数据库映射器类吗?看来程序员一开始还是要做很多基础工作。然后我遇到了 Codesmith,它有 NIBerate 的模板?它填补了空白吗?

4

3 回答 3

4

您可以使用代码模板,但这仍然会造成痛苦恕我直言。最好的方法是使用Fluent nHibernate。他们有一个新的自动映射器功能,按惯例使用配置。没有映射文件,它只是假设您使用相似的名称,并且可以定义如何将实体名称转换为表名称的规则。

于 2009-03-25T01:33:47.543 回答
1

代码生成可以很好地填补这个空白,我开始使用 CodeSmith,但后来他们把它变成了付费项目,所以我搬到了MyGeneration。我的方法是首先攻击数据库,生成映射文件的代码,如果它们尚不存在,则生成类。这让事情进展得非常快,非常适合原型和创建测试数据。

然后通常手动更改映射文件、类和数据库。在某些情况下,我尝试让代码生成作为 CI 的一部分工作——但事实证明,这样做很难,除非你对自己的部分进行了严格的规范,否则你是手工制作的代码更改。部分类是一个帮助,但仍然有可能让整个团队在同一页面上,没有人喜欢让他们的代码被工具覆盖,即使你可以回滚和合并。

于 2009-03-25T01:38:33.083 回答
1

我为 CodeSmith 工作...请记住,MyGeneration 并没有永远更新,这意味着它也缺乏支持。CodeSmith 完全支持其产品和模板。这意味着任何模板错误也将由 Codesmith 修复和验证。

谢谢

——布莱克·涅米斯基

于 2009-10-30T17:03:23.930 回答