プロパティ名の文字列なしNHibernateの制限を使用
-
26-09-2019 - |
質問
、プロパティに適用される制限を追加することができます。制限を作成する2通りの方法があります:
Restrictions.Eq(string propertyName, object value)
または
Restrictions.Eq(IProjection projection, object value)
事があり、私は、文字列として快適通過プロパティ名を感じることはありません。私はTDDを実装しようとしているが、私は(我々はTDDを採用するために管理まで)エラーをチェックするためのユニットテストの限界の依存関係にしようとしているので、それは、いつでもすぐに発生しません。
任意のアイデア? 事前に感謝します!
解決
を使用するLINQ、 QueryOverする(NH3.x)または NHラムダ拡張する(NH2.x)または NHibernateの式拡張する(NH1.2 )
これらのすべては、より多くの文字列だけを使用するよりも強く型付けされている。
他のヒント
私はあなたの痛みを感じることができます。
しかし、あなたはNHibernateはマッピングがテーブルやカラム名の変更を検出することはできません同じように、基準のAPIで投影を使用して、プロパティを動的に参照を配置する方法はありません。
検索を行うと、ほとんどの場合で作業して「プロパティ」と段階的に置き換えます。
限り、あなたはユニットテスト(あなたがいないのですか?)の完全なカバレッジを持っているとして、それが問題になることはありません、するべきこと: - ?)
プロパティ名の文字列を使用しないようにするもう一つの理由は、例えば使用してリファクタリングということですReSharperのは、これらの参照を修正することはできません。流暢NHibernateは本当に輝いところです。