問題タブ [nhibernate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
3703 参照

nhibernate - NHibnernate の Fluent と XML のマッピングを組み合わせる

NHibernate と流暢なインターフェースに夢中になりました。後者は、リファクタリングをサポートする非常に優れたマッピングを可能にします (xml ファイルはもう必要ありません)。

しかし、誰も完璧ではないので、流暢な多対多のマッピングが欠けています。それがすでにそこにあるかどうか誰かが知っていますか?もしそうなら、単純なコード行がいいでしょう。

しかし、質問のヘッダーに固執するために、流れるような NHibernate マッピングと通常の NHibernate マッピングを組み合わせる方法はありますか。

現在、流暢なテスト セットアップには次の行を使用し、非流暢なテスト (XML マッピングを使用) には 2 番目のコード ブロックを使用します。流暢なIF AVAILABLEとXMLを使用するように流暢に伝えるにはどうすればよいですか...

流暢でなければ...

それだけです... クリス

PS: 私はこのサイトが本当に好きです。GUI は完璧で、すべての記事の質は素晴らしいです。私はそれが巨大になると思います:-) 登録する必要があります...

0 投票する
5 に答える
6158 参照

nhibernate - WindowsサービスアプリケーションでのNHibernateセッション管理

私は、Windowsサービスとして実行されるアプリケーションを開発しています。いくつかのWCFサービス、クライアントGUIなどを含む他のコンポーネントがありますが、データベースにアクセスするのはWindowsサービスです。

そのため、このアプリケーションは長時間実行されるサーバーであり、パフォーマンスとスケーラビリティを向上させたいと考えていました。特に、データアクセスの向上を目指していました。第2レベルのキャッシュについて別のスレッドに投稿しました。

この投稿は、データベースにアクセスする長時間実行スレッドのセッション管理に関するものです。スレッド静的コンテキストを使用する必要がありますか?もしそうなら、それがどのように実装されるかの例はありますか?

NHibernateを使用しているネット上のすべての人は、Webアプリケーションスタイルのアーキテクチャに重点を置いているようです。Web以外のアプリの設計に関するドキュメント/ディスカッションが大幅に不足しているようです。

現時点では、私の長時間実行スレッドはこれを行います:

  1. 3つまたは4つのDAOメソッドを呼び出す
  2. 返された分離オブジェクトの状態を確認します。
  3. 必要に応じて状態を更新します。
  4. いくつかのDAOメソッドを呼び出して、更新されたインスタンスを永続化します。(オブジェクトのIDとインスタンス自体を渡します-DAOはDBからオブジェクトを再度取得し、トランザクションをコミットする前に更新された値とsession.SaveOrUpdate()を設定します。
  5. 'n'秒間スリープ
  6. もう一度繰り返してください!

したがって、以下は、各DAOメソッドに使用する一般的なパターンです。

  • sessionFactory.OpenSession()を使用してセッションを開く
  • トランザクションを開始します
  • db作業を行います。取得/更新など
  • トランスをコミットする
  • (例外の場合のロールバック)
  • 最後に、常にトランザクションとセッションを破棄します。Close()

これは、DAOクラスへのすべてのメソッド呼び出しで発生します。これは、私たちが行っているアンチパターンのようなものだと思います。

しかし、どうすればそれを改善できるかについて、どこにも十分な方向性を見つけることができません。

plsは、このスレッドがバックグラウンドで実行されている間、WCFクライアントから要求があり、それぞれが2〜3個のDAO呼び出しを行う可能性があることに注意してください。場合によっては、長時間実行されているスレッドが処理する同じオブジェクトをクエリ/更新します。 。

私たちのデザインを改善するためのアイデア/提案/ポインタは大歓迎です。良い議論ができれば、これをコミュニティwikiにして、http://nhibernate.infoからここにリンクすることもできます

クリシュナ

0 投票する
2 に答える
1332 参照

nhibernate - nhibernate-最後にnullをソート

MS SQL Server 2005/2008(およびできればOracle)と互換性のある方法で、C#からNHibernateを使用し、HQLのみ(SQLではない)を使用します。

クエリ結果の最後でnullが並べ替えられ、null以外の結果が昇順で並べ替えられるように、order by句を記述する方法はありますか?

nickfが参照する質問への回答に基づくと、回答は次のとおりです。

0 投票する
3 に答える
3462 参照

nhibernate - モノを使用したNibernate 2.0.1

Windows マシンで WinForm アプリをビルドしましたが、アプリは正常に動作しています。nhibernate 1.2.1 を使用すると、アプリは mono を使用して Linux マシンでも動作しましたが、アプリを nhibernate 2.0.1 にアップグレードすると、Windows でのみ動作します。エラーが発生しました: NHibernate.InvalidProxyTypeException: The following types may not be used as proxies: xxxx.Data.Dao.Credit : method obj_address should be virtual ...... 誰でもこの問題を解決できますか?

0 投票する
1 に答える
1094 参照

c# - IDにない別のオブジェクトへのHibernateマッピング

わかりました、NHibernate の質問はこちらです。互いにマッピングしたい 2 つのオブジェクトがあります。「Vendor」と「Township」があります...この 2 つは、ID ではなく、郵便番号でリンクする必要があります。IDを使用してオブジェクトでこれを何度も行いましたが、このようなことは一度もありません。

私が抱えている問題は、文字列として保存されている ZipCode が何らかの形で整数に変換されていることです (先頭のゼロが削除されています)。それか、オブジェクトの 1 つの ID を使用しています。

これが私のエラーです:

'/HQWebsite' アプリケーションでサーバー エラーが発生しました。指定された識別子を持つ行が存在しません[HQData.Objects.Township#7922]

また、私が調べたデータベースのデータでもなく、データは正確です。

Vendor xml ファイルのマッピング方法は次のとおりです。

タウンシップ ワンのプロパティは次のとおりです。

誰もNHibernateに精通しており、以前にこれを行ったことがありますか? ありがとう!

0 投票する
3 に答える
699 参照

c# - ドメイン駆動設計-論理的削除

だから、私は素晴らしいドメインモデルを構築しました。リポジトリはデータアクセスとそうでないものを処理します。理由を削除とともにログに記録する必要があることを示す新しい要件がポップアップ表示されました。これまで、削除はかなり単純でした=> Entity.Children.Remove(child)。ORMツールが状態管理を処理していたため、内部変更の追跡は行われませんでした。ただし、これをどのように処理するかは正確にはわかりません。

1)削除された子コレクションを親エンティティに保持し、変更追跡をnHibernateから引き出して、自分で処理することができます。

2)??????

0 投票する
3 に答える
3115 参照

nhibernate - NHibernate マッピング ファイルから C# クラスを生成するためのツール?

NHibernate マッピング ファイルから C# クラスを生成するためのツールは何ですか?

0 投票する
1 に答える
2926 参照

nhibernate - Hibernate 双方向多対多関連

次の説明を持つクラスがあります。

Contacts プロパティを次のテーブルにマップしたい:

双方向にマップする必要があります。つまり、Customer1 が Customer2 の Contacts に追加された場合、Customer1 の Contacts コレクションには Customer2 が含まれている必要があります (エンティティのリロード後のみ)。どうすればそれができますか?

更新確かに、左から右および右から左のセットをマップして、実行時に結合できますが、それは...うーん...おいしくない...他の解決策はありますか? とにかく、 FryHardさん、ありがとうございました!

0 投票する
2 に答える
1708 参照

asp.net - NHibernate データベース接続が負荷の下で失敗する

これは NHibernate 開発者の経験になじみがあるように見えるかどうか、またはこの問題を解決するためにどこから始めるべきかについて誰かが私にアイデアを与えることができるかどうか疑問に思っていました:

ASP.NET 1.1 で記述された NHibernate サイトを継承し、NHibernate 0.6 と .NET リモート処理を使用して、データベース サーバーにある DAL レイヤーにアクセスしました。ASP.NET 3.5 および NHibernate 1.2.1.4 にアップグレードしようとしています。

.NET リモート処理セットアップを直接データベース接続に置き換えたところ、サイトに何らかの負荷がかかるまですべて正常に動作し、NHibernate 呼び出しが断続的に例外をスローして失敗し始めました。

エラーとともに表示されるスタック トレースは次のとおりです。

0 投票する
2 に答える
2825 参照

c# - NHibernate DetachedCriteria.SetFirstResult?

Web 上の NHibernate でリポジトリ パターンを実装する例を見つけました。メソッドの 1 つは、このコードを使用してクエリの最初の結果を取得します。

しかし、VS Intellisense は DetachedCriteria からこのメソッドを取得していません。これが DetachedCriteria で可能かどうかは誰にもわかりますか? NHibernate バージョン 1.2.1 を使用しています。