既存の多言語データベースを使用して LinqToSQL をいじっていますが、かなり重要な 1 対 1 の関係をマッピングする際に問題が発生しているため、データベース設計でこの機能を誤って使用していると思われます。
Category と CategoryDetail という 2 つのテーブルがあるとします。カテゴリには、CategoryId (PK)、ParentId、および TemplateId が含まれます。CategoryDetail には、CategoryId (FK)、LanguageId、Title、Description (適切な言語) が含まれ、CategoryId と LanguageId の組み合わせ PK が含まれます。
これらのテーブルを LinqToSQL デザイナーにドラッグ アンド ドロップすると、結果のオブジェクト モデルには、CategoryDetail オブジェクトのコレクションを含む Category が含まれますが、これは決して当てはまりません。つまり、Category.CategoryDetails 内にカプセル化されたすべての言語バージョンではなく、Category.CategoryDetail 内にカテゴリ全体がカプセル化されます。
このデータベースは、私の古いオブジェクト ライブラリ (昔ながらのカスタム BOL および DAL) では正常に機能しましたが、必要な結果を得るためには、LinqToSQL でこれを変更する必要があるのではないかと心配しています。
この関係 (および言語フィルタリング) を可能な限りシームレスにする最善の方法は何ですか?