7

私は SQL Server を使用していますが、ほとんどのテーブルには int 型の ID 列があります。そして今、このメカニズムを使用するのは良い考えではないと書かれている本に出くわしました。NHibernate を ORM として使用する場合に ID 列を使用することの短所/長所は何ですか?

4

2 に答える 2

5

私は NHibernate の専門家ではありませんが、私が理解している限りでは、ID 列を使用すると UnitOfWork が壊れ、データベースへの追加のラウンドトリップが発生します。

Fabio Maulo (当時は NHibernate のプロジェクト リーダーでしたが、彼がまだいるかどうかはわかりません)は、これを詳細に説明するブログ投稿を持っています:
アイデンティティ: 終わらない物語

コード例を含む別の (より長い) ブログ投稿を次に示します:
NH2.1.0: generators behavior Explained

ただし、どちらのブログ投稿も約 3 年前のものであり、NH 2.1.0 について述べていることに注意してください。現在のバージョンは NH 3.3 です。しかし、ファビオが説明した問題は今日でも存在していると思います。

于 2012-05-29T21:29:53.870 に答える
3

ID 列であるかどうかは関係ありません。ORM の役割は、データ エンティティをデータベースにマップすることであり、データベースの構造や設計を指示することではありません。ID 列を使用した実装を使用しましたが、正常に動作します。

于 2012-05-29T20:53:42.517 に答える