使用NHibernate和Codesmith生成ORM

时间:2009-03-25 01:30:52

标签: nhibernate codesmith

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

问题是NHibernate可以读入表并自动检索关系,需要配置文件以及数据库映射器类吗?似乎程序员最初还是要做很多基础工作。然后我遇到了Codesmith,它获得了NHiberate的模板?是否填补了空白?

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

代码生成可以很好地填补这个空白,我开始使用CodeSmith,但随后他们将其作为付费项目,因此我转移到MyGeneration。我的方法是首先攻击数据库,代码生成映射文件,然后生成gen类(如果它们尚不存在)。这会让事情变得非常快,非常适合原型和创建测试数据。

然后通常手动更改映射文件,类和数据库。在某些情况下,我已经尝试将代码生成作为CI的一部分 - 但事实证明很难做到这一点,除非你对你手工制作代码更改的位置有所规范。部分类是一个帮助,但仍然是让整个团队在同一页面上的概率,没有人喜欢用工具覆盖他们的代码,即使你可以回滚和合并。

答案 2 :(得分:1)

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

由于

-Blake Niemyjski