2

NHibernate を使用しており、ローカルの SQLExpress データベースから Oracle11g に切り替えました。

私のコードは不平を言い始めました。セッション オブジェクト メソッド SetBatchSize() は System.NotSupported 例外をスローします。

セッション ファクトリのバッチ サイズが定義されていません。バッチ処理は無効になっています。バッチ処理を有効にするには、adonet.batch_size = 1 を設定します。

SQLExpress データベースで動作しました。わかりましたので、これを追加しました

<property name="adonet.batch_size">1</property>

構成に追加しますが、それでも同じ例外がスローされます。セッションの Batcher プロパティはこれに設定されます

値: {NHibernate.AdoNet.NonBatchingBatcher}

タイプ: NHibernate.Engine.IBatcher {NHibernate.AdoNet.NonBatchingBatcher}

トランザクションの内外でバッチサイズを設定しようとしても、違いはありません。

4

1 に答える 1

2

NHibernate には、一部の RDBM 用のバッチャーしかありません。問題のデータベースのものが見つからない場合、デフォルトで、まったくバッチ処理できない nonbatchingbatcher になります。独自の を実装できますIBatcher

于 2012-06-21T05:39:48.707 に答える