0

質問が述べているように、コンポジットで使用される2つのフィールドの1つがIDフィールドである場合、流暢なnhibernate(または非流暢だと思います)でコンポジットキーをマッピングすることは可能ですか?

主キーの一部がIDフィールドで、もう一方がテナントIDであるテーブルがあります。これは、複合キーが全体で外部キーとして使用されるレガシーデータベースであるため、データベースの変更は非常に重要です。

ありがとう!

4

1 に答える 1

0

それが本当に ID 列である場合、すべてのレコードで一意であることが保証されますよね?

その場合、マッピング目的でテナント ID を完全に無視できます。ID フィールドはプライマリ テーブルで一意になります。また、外部キー参照にはこの一意の ID が含まれるため、テナント ID は実際には無関係です。

NHibernate は、データベース スキーマを正確にマッピングしているかどうかは気にしません。非キー列に一意の制約を定義し、NHibernate にそれを主キーとして使用するように指示する前に、レガシー データベースを使用したことがあります。これは機能し、あらゆる種類の恐ろしい複合キー関係をうまく回避できます。マッピング。

考えてみてください。直感に反しますが、おそらくうまくいくでしょう。

于 2009-10-23T20:22:47.720 に答える