私は次のコードを持っています:
var carsContext = new CarsDataContext();
IQueryable<Car> allCars = carsContext.Cars;
foreach (var car in allCars)
Console.WriteLine(car.Color);
私が欲しいのは、各車のオブジェクトがそれを取得するために使用された元のデータコンテキストを認識し、次のようなヘルパーメソッドで装飾できるようにすることです。
foreach (var car in allCars)
Console.WriteLine(car.GetOwner().Lastname);
GetOwner()メソッドを使用すると、元のデータコンテキストを次のデータベースに自動的に再利用できますが、今のところ、同じ効果を得るには醜いことをする必要があります。
foreach (var car in allCars)
{
car.SetDataContext(carsContext);
Console.WriteLine(car.GetOwner().Lastname);
}
この情報はすでにオブジェクトで利用可能ですか、それともオブジェクトがコレクションから取得されたときにこれを自動割り当てするカスタムIQueryable実装を作成してみる必要がありますか?
パフォーマンス上の理由から、データベースに対する式の遅延評価をSQLとして保持したいので、この方法でこれを実行しようとしています(データセットが大きい)。
アドバイスをいただければ幸いです。
編集:これは単純化された例です。たとえば、元のデータコンテキストへの参照がすぐに利用できるとは限りません。