私は、DataContext を整理する方法について最善の戦略を見つけようとしています。私たちが扱っている典型的な DB には、通常は 50 から 100 のテーブルがあり、通常は第 3 正規形であり、それらの間に多くの関係があります。次の 2 つのオプションがあると思います。
- すべてのテーブルを単一のコンテキストに配置します。これにより、私たちが行うことはすべて、データベースで正しい順序でコミットされます。問題は、LINQ デザイナーが 50 以上のテーブルで混乱することであり、パフォーマンスが影響を受けるのではないかと心配しています。
- テーブルの論理グループに基づいて、いくつかのデータ コンテキストを作成します。問題は、関係の一方が一方のコンテキストにあり、もう一方が別のコンテキストにある場所があることです。両方のコンテキストを正しい順序で手動でコミットする必要があります。
これを処理するための推奨される方法はありますか?
詳細:
LINQ to SQL の上に独自のエンティティと作業単位を作成したいと考えています。エンティティは、LINQ エンティティへのマッピングも指定される xml モデル ファイルで定義されます。カスタム ツールは、モデルに基づいてエンティティ (POCO) を生成します。クライアント コードは、エンティティと作業単位のみと対話します。DataContext または LINQ エンティティを直接使用しないでください。ただし、LINQ to SQL がすぐに提供するものを複製したくないので、基礎となる LINQ DataContext を使用したいと考えています。これは、異なるデータ コンテキストで 2 つの注文を持つことができないことを意味します。POCO 注文を両方にマップすることはできないからです。