ステップ1:テーブル間の関連付けを作成します。これが適切に行われることがわかります
- クラスGalleryにはGalleryImagesプロパティがあります
- クラスGalleryImageにはプロパティGalleryとImageがあります(注、単数)
- クラスImageにはGalleryImagesプロパティがあります。
http://msdn.microsoft.com/en-us/library/bb629295.aspx
ステップ2:ギャラリーのリストを取得するには:
using (CustomDataContext myDC = new CustomDataContext)
{
List<Gallery> result = myDC.Galleries.ToList();
}
ステップ3:次に、ユーザーがギャラリーをクリックすると、その画像が必要になります。
using (CustomDataContext myDC = new CustomDataContext)
{
List<Image> result = myDC.Galleries
.Where(g => g.Id = selectedGallery.Id);
.SelectMany(g => g.GalleryImages)
.Select(gi => gi.Image)
.ToList()
}
ステップ4:次に、ユーザーが画像をクリックすると、そのギャラリーが必要になります。
using (CustomDataContext myDC = new CustomDataContext)
{
List<Gallery> result = myDC.Images
.Where(i => i.Id = selectedImage.Id);
.SelectMany(i => i.GalleryImages)
.Select(gi => gi.Galleries)
.ToList()
}
データベース全体をロードするだけの場合は、次のようにします。
using (CustomDataContext myDC = new CustomDataContext)
{
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Gallery>(g => g.GalleryImages);
dlo.LoadWith<GalleryImage>(gi => gi.Image);
myDC.LoadOptions = dlo;
List<Gallery> result = myDC.Galleries.ToList();
}
その後、オブジェクトグラフ全体が読み込まれ、接続されて使用できるようになります。