0

ジェネレーター クラスassignedを使用して主キーの値を割り当てています。私はそれがより良いと述べているいくつかのブログを読みhiloました. assigned以上にメリットはありhiloますか?

4

1 に答える 1

3

assigned主キーを自分で定義したい場合に便利です。

たとえば、別のデータベースやインポートされたファイルなど、どこかから値を取得するassignedと便利です。しかし、それは整数ではなく GUID であることは間違いありません。また、ビジネス データであると同時に主キーでもある自然主キーを使用することもできます。これを行うことはお勧めできませんが。

assigned通常のアプリケーション用ではなく、特殊なケース用です。通常、人工キーを使用するため、正確な値は気にしません。少なくとも同じデータベースを使用する複数のプロセスを考慮する場合、値を自分で生成するのは難しい場合があります。

assignedと (ほとんどの?) 他の ID ジェネレーターとの間には大きな違いがあります。assignedキーは、NHibernate によってもデータベースによっても提供されません。NHibernate は通常、id を評価することによって、エンティティがデータベースに既に存在するかどうかを認識します。自分で割り当てるときは、エンティティを挿入または更新する必要があるかどうかを自分自身で知る必要もあります。これにより、この ID ジェネレーターは特別なものになります。assigned他の ID ジェネレーターを使用する場合と同様に、使用する場合のコードは異なって見えます。

于 2010-08-09T19:38:03.547 に答える