2009-03-25 7 views
6

ちょうどNHiberateを学び始めました。各データベーステーブルに適切なhbm.xml設定ファイルを書くのは面倒です。ORDを生成するためにコードマスでNHibernateを使用

質問はNHibernateがテーブルに読み込んで自動的にリレーションシップと必要な設定ファイルとデータベースマッパークラスを取得することができますか?プログラマはまだ最初に多くの基礎作業をしなければならないようです。それから私はHiberateのためのテンプレートを持っているCodesmithに出くわしたのですか?それはギャップを埋めますか?

答えて

4

コードテンプレートを使用できますが、それでも痛みIMHOが作成されます。最も良い方法はFluent nHibernateを使用することです。彼らは慣例による設定を使用する新しい自動マッパ機能を持っています。マッピングファイルはありません。類似した名前を使用し、エンティティ名をテーブル名に変換する方法の規則を定義できるという前提があります。

1

CodeSmithを使用してコードを生成すると、実際にそのギャップが埋め尽くされることがありますが、そのコードを有料アイテムにしてMyGenerationに移動しました。私のアプローチは、DBを最初に攻撃し、マッピングファイルをコード化し、genクラスがまだ存在していなければそれを攻撃することです。それは、プロトタイプの作成やテストデータの作成には素早く進みます。

マッピングファイル、クラス、およびDBは、しばしば手動で変更されます。場合によっては、コード生成がCIの一部として機能するようにしようとしましたが、手作業でコードを変更する部分について訓練を受けていない限り、そうするのは難しいことが分かりました。パーシャルクラスは助けとなりましたが、チーム全体を同じページにまとめることは難しく、ツールを使用してコードを上書きすることは誰も望んでいません。

+0

おかげで、私はその上にあった最後のプロジェクトは、私たちが – JoshBerke

+0

で....十分な速発電機を更新し続けることができなかったときにコードが途中でコード遺伝子をオフにgen'ed使用しましたあなたの意見は、無料であることに加えて、MyGenerationはより良いコードジェネレーションですか? – devXen

+0

CodeSmithや他の人に十分な経験がありません。今はオープンソースで、テンプレートはC#で書かれています - それらはすべてプラスです。 – MrTelly

1

私はCodeSmithで働いています... MyGenerationは永遠に更新されていないので、サポートが不足していることに注意してください。 CodeSmithは、その製品とテンプレートを完全にサポートしています。つまり、テンプレートのバグもCodesmithによって修正され、検証されます。

-Blake Niemyjski

+0

私はMyGenerationが更新されていないことに同意しますが、完全開示の目的で、CodeSmithの開発者として活躍していることには注意してください。 – furtive

+0

はい、これは当てはまります。私はそれを示すために私の記事のほとんどを更新しました。 –

関連する問題