sql >> データベース >  >> RDS >> Sqlserver

Nhibernateでバージョン管理をどのように行いますか?

    いいえ。ロックはトランザクションの範囲でのみ配置されます。トランザクションは、リクエストが終了するとWebアプリケーションで終了します。また、トランザクション分離モードのデフォルトのタイプは読み取りコミット です。 これは、selectステートメントが終了するとすぐに読み取りロックが解放されることを意味します。同じリクエストとトランザクションで読み取りと編集を行っている場合は、手元の行に読み取りと書き込みのロックを設定すると、他のトランザクションがその行に書き込んだり、その行から読み取ったりするのを防ぐことができます。ただし、このタイプの同時実行制御はWebアプリケーションではうまく機能しません。

    これは、[楽観的同時実行性]が使用されている場合に発生します。 NHibernateでは、楽観的同時実行性はバージョンフィールド 。保存/更新コマンドは、更新のベースとなったバージョンで発行されます。それがデータベーステーブルのバージョンと異なる場合、行は更新されず、NHibernateはスローします。

    いいえ、リクエストの終了時にロックが解除されます。

    全体として、最善の策は、NHibernateによって管理されるバージョンフィールドとの楽観的同時実行性を選択することです。



    1. SET CONSTRAINTSALLDEFERREDが期待どおりに機能しない

    2. ローカル接続を行うときに、ホストがこのmysqlサーバーに接続することは許可されていません

    3. OracleでDecodeを使用する方法

    4. エラー1049(42000):不明なデータベース'mydatabasename'