刚开始学习NHiberate。为每个数据库表编写适当的hbm.xml配置文件似乎相当繁琐。
问题是NHibernate可以读入表并自动检索关系,需要配置文件以及数据库映射器类吗?似乎程序员最初还是要做很多基础工作。然后我遇到了Codesmith,它获得了NHiberate的模板?是否填补了空白?
答案 0 :(得分:4)
您可以使用代码模板,但这仍然会造成痛苦恕我直言。最好的方法是使用Fluent nHibernate。它们具有新的自动映射器功能,它按惯例使用配置。没有映射文件,它只是假设您使用类似的名称,并且可以定义如何将实体名称转换为表名的规则。
答案 1 :(得分:1)
代码生成可以很好地填补这个空白,我开始使用CodeSmith,但随后他们将其作为付费项目,因此我转移到MyGeneration。我的方法是首先攻击数据库,代码生成映射文件,然后生成gen类(如果它们尚不存在)。这会让事情变得非常快,非常适合原型和创建测试数据。
然后通常手动更改映射文件,类和数据库。在某些情况下,我已经尝试将代码生成作为CI的一部分 - 但事实证明很难做到这一点,除非你对你手工制作代码更改的位置有所规范。部分类是一个帮助,但仍然是让整个团队在同一页面上的概率,没有人喜欢用工具覆盖他们的代码,即使你可以回滚和合并。
答案 2 :(得分:1)
我为CodeSmith工作......请记住,MyGeneration尚未永久更新,这意味着它也缺乏支持。 CodeSmith完全支持其产品和模板。这意味着任何模板错误也将由Codesmith修复和验证。
由于
-Blake Niemyjski