私はNHibernate ISession
をC#で使用しています。私はFluent
またはIStatelessSession
またはidentity
を使用していません。私は識別子のためにguid.comb
を使用しています。NHibernate - "adonet.batch_size"と "ISession.SetBatchSize()"は同じですか?
データアクセスレイヤーでバッチ処理を実装していますが、設定に関する混乱があります。
私はwebとStack Overflowを検索すると、設定ファイルで次のプロパティを "1"に設定するよう求めている人がいました。
<property name="adonet.batch_size">1</property>
また、必要に応じて次のように電話する必要があります。
ISession.SetBatchSize(100);
ADO.NETでのバッチ処理を可能にしますadonet.batch_size
1に設定し、バッチ処理の決定についてNHibernateのを教えてくれますSetBatchSize()
を呼び出します。
これは私を混乱させます。私は両方の人が構成するためにちょうど異なる方法と場所で同じ仕事をすると思う。だから両方の方法を使う必要はありません。私はいずれかを使用してバッチ処理を達成する必要があります。
お勧めします。
参考文献:
:プロパティは次の例外がスローされ、設定ファイルに設定されていない場合の質問は言う:ませバッチサイズはセッションファクトリのために定義されていなかった、バッチ処理が無効になっ です。バッチ処理を有効にするには、adonet.batch_size = 1に設定します。
Link2:「2009年12月14日」の「Kris-I」の回答を参照してください。また、以下のように彼のコメントを参照してください。
私は私はあなたが設定ファイルに配置する必要がありましたラインだと思う - クリス-I
Link3を:受け入れられた答えを参照してください。最初にadonet.batch_size
が設定され、次にSetBatchSize()
が呼び出されます。
Link4このNHibernate文書は、ISession.SetBatchSize()
を全く言及していない。
実行時に 'SetBatchSize()'が設定値を設定するという印象を受けます(https://ayende.com/blog/3786/nh-prof-alerts-use-statement-batching)。実行時に 'SessionFactory'の設定を見ることでこれを調べることができます。 –
設定はバッチのサイズを制御します。私。 1つのグループでサーバーに送信されるステートメントの数。値が1の設定がどのように役立つのか、私は理解していません。 –
@DavidOsborne:まさに私の混乱です。また、なぜ私は同じことを2回設定する必要がありますか? –