質問が述べているように、コンポジットで使用される2つのフィールドの1つがIDフィールドである場合、流暢なnhibernate(または非流暢だと思います)でコンポジットキーをマッピングすることは可能ですか?
主キーの一部がIDフィールドで、もう一方がテナントIDであるテーブルがあります。これは、複合キーが全体で外部キーとして使用されるレガシーデータベースであるため、データベースの変更は非常に重要です。
ありがとう!
質問が述べているように、コンポジットで使用される2つのフィールドの1つがIDフィールドである場合、流暢なnhibernate(または非流暢だと思います)でコンポジットキーをマッピングすることは可能ですか?
主キーの一部がIDフィールドで、もう一方がテナントIDであるテーブルがあります。これは、複合キーが全体で外部キーとして使用されるレガシーデータベースであるため、データベースの変更は非常に重要です。
ありがとう!
それが本当に ID 列である場合、すべてのレコードで一意であることが保証されますよね?
その場合、マッピング目的でテナント ID を完全に無視できます。ID フィールドはプライマリ テーブルで一意になります。また、外部キー参照にはこの一意の ID が含まれるため、テナント ID は実際には無関係です。
NHibernate は、データベース スキーマを正確にマッピングしているかどうかは気にしません。非キー列に一意の制約を定義し、NHibernate にそれを主キーとして使用するように指示する前に、レガシー データベースを使用したことがあります。これは機能し、あらゆる種類の恐ろしい複合キー関係をうまく回避できます。マッピング。
考えてみてください。直感に反しますが、おそらくうまくいくでしょう。