Linq to SQLを使用する場合、多対多リレーションシップテーブルに複数列(複合)プライマリキーを使用すると便利ですか?Linq to SQLを使用する場合、マルチカラム(複合)主キーを使用すると便利ですか?
また、クラスタ化されていないプライマリキーとしてID列を追加し、FK列を適切にインデックスする必要がありますか?
Linq to SQLを使用する場合、多対多リレーションシップテーブルに複数列(複合)プライマリキーを使用すると便利ですか?Linq to SQLを使用する場合、マルチカラム(複合)主キーを使用すると便利ですか?
また、クラスタ化されていないプライマリキーとしてID列を追加し、FK列を適切にインデックスする必要がありますか?
ないLINQの問題。スキーマに必要な場合は、それらを使用してください。あなたがしない場合、しないでください。いずれにせよ、LINQはあなたのスキーマをうまく処理します。
LINQ to SQLがうまく処理できない1つの領域は、多対多の関係を結ぶために使用される多列/キーマッピングテーブルですが、これはあなたの質問に該当するカテゴリの下にあります。 LINQ内のマッピングテーブルに対してCRUD操作を実行することはできますが、LINQは多対多マッピングテーブルによって示される関係を歩くことはできません。 (LINQは1対1,1テーブルでうまく動作します)
エンティティフレームワークの問題については話すことができませんが、EFがマルチカラム/マルチキーテーブル。
ドメイン内で複数列の複合キーを使用することに意味がある場合は、1つを使用します。それ以外の場合は、通常の識別列をサロゲート主キーとして使用します。
EDIT:一般的なアドバイスであり、LINQtoSQLを使用した実装の技術的側面は考慮していません。これらは、対象とすることができる:
これは、Linq to SQLが分割キーや追加の労力をかけずにコンポジットキーを処理できることを意味しますか? –
実際、これはまさに多対多関係テーブルの問題でした。ありがとう –