密結合クライアント サーバー アプリケーションと LINQ to SQL
更新 : November 2007
プレゼンテーション層の密結合スマート クライアントと共に、LINQ to SQL を中間層で使用することができます。読み取り専用データ アクセス、オプティミスティック同時実行チェックなし、またはタイムスタンプを使用したオプティミスティック同時実行のシナリオの場合、非リモートのシナリオに比べて複雑さはほぼ同じです。しかし、元の値を使用したオプティミスティック同時実行チェックをデータベースで行う必要がある場合、LINQ to SQL は DataSet のようなレベルのデータ ラウンド トリップをサポートしません。ただし、LINQ to SQL 中間層は任意のプラットフォーム上のクライアントとの間でデータをやり取りできます。
Visual Studio 2008 の LINQ to SQL には、クライアントにシリアル化された後のエンティティの状態を追跡するインフラストラクチャが用意されていません。LINQ to SQL では、小量の比較的アトミックな対話をデータ層とプレゼンテーション層の間で行うサービス指向アーキテクチャが実現されますが、元の値のラウンド トリップはまったく実行されません。このため、密結合のスマート クライアントを LINQ to SQL と共に使用し、元の値を使ったオプティミスティック同時実行制御をデータベースで行う場合には、プレゼンテーション層と中間層の間で変更内容を通信するための独自の機構を実装する必要があります。中間層で LINQ to SQL を使用することの利点を考慮に入れて、この余分の作業を行うかどうかは、システム設計者の判断に任せられます。一方、データベースでタイムスタンプを使用する場合には、変更追跡用のカスタム ロジックは必要ありません。
参照
概念
LINQ to SQL を使用する n 層アプリケーションとリモート アプリケーション