最近NHの最新バージョンであるNHibernate 2.1から3.0にWebアプリケーションをアップグレードすることにしました。また、Monoとの互換性を最大限にするために.NET 2.0から3.5にアップグレードすることを決定しました(webappはLinuxのみで動作します)。NHibernate 3.0とLINQ:何が欠けていますか?
私はNHibernate.Linq名前空間がリリースに含まれていることも知っていたので、LINQとNHibernateでちょっと遊んでみたかったのです。
ただし、ISession
インスタンスを使用してLINQを書き込もうとすると、Linq<T>
メソッドが取得されません。
私は多くを読んだ古い LINQをNHに使用するには、NHContribパッケージを使用する必要がありますブログ記事。
私の質問は
である私はまだNHContribをダウンロードする必要がありますか? NHのバージョン3.0 NHにNHContribのLINQよりもはるかに多く、最近であり、私は、LINQの名前空間がリリースに
あるいは、
を含め見たことが原因2.0-> 3.5フレームワークのアップグレードを使用してVisual Studio 2010にアップグレードすることです?私はダブルチェックし、ターゲットフレームワークは3.5です。
残念ながら、私は
ありがとう汎用開発よりもNH開発者にとってより有用である完全なクラスのドキュメントを除き、NH 3.0の包括的なドキュメントを見つけることができません。
を行う必要がありますが、より良い説明できますか?私はオブジェクト間の値比較を実行する必要があります:あなたの例はおそらく==と比較できる文字列を表示しますが、私のオブジェクトは主キーの比較を実行するためにオーバーロードされたEquals()メソッドを持っています。オブジェクト全体ではなくプライマリキーを明示的に比較する必要がありますか?例(e.Boss.Equals(me)がeを選択する従業員のeから)、ここでBossはPerson型ですが、どうすればよいですか? –
私たちもやっているので、 '=='演算子を使うだけです: 'e.Boss == meはeを選択します。 ' –
(私たちのすべてのものは、私たちが持っていた3.0への移行の一環として' .Equals'クエリを '=='に更新すると、以前と同じように動作します) –