2016-07-14 10 views
0

複数のユーザーがアプリケーションにアクセスしているときは、重複する列(例:名前が一意であるユーザー表の名前列)を挿入できません。2行のない行の挿入を防ぐには、同じ(重複する)値を持つ

私がこれを行う方法は、ボタンのクリックイベントで、名前がdbに存在するかどうかをチェックしています。これは、存在していれば検証エラーを示します(複製);これは、単一ユーザがアプリケーションにアクセスするときに完全に機能します。

しかし、2人のユーザーが同じ列名を持つ行(ユーザー)を同時に挿入すると、名前が既に存在するかどうかをチェックするために最初のユーザーの要求がdbにヒットしたため、レコード(重複名付き)はまだ挿入されていません。

したがって、検証は表示されません。

nhibernateセッションでこの問題を解決する方法は?ロックを使用できますか? アドバイスをお願いします。

答えて

1

これは、データベースに対して一意制約を適用する必要があります。次に、挿入トランザクションをコミットするときに、制約違反のエラーをキャッチする必要があります。これは、データベースが優れていることの1つです。

関連する問題