您需要通过 DataContext 对象访问所有这些。
查看为您的 dbml 生成的 c# 文件,并查找标有 Association 属性的 EntitySet 集合——Gallary 和 Image 中应该有一个,GallaryImage 中应该有 2 个。如果正确生成了 dbml,您应该能够执行以下操作 -
在我的脑海中,我很确定设计表面会将Gallery的复数命名为Gallerys而不是Galleries,所以这不是错字 -
DataConext dc = new GalleryDataConext();
foreach (Gallery g in dc.Gallerys)
{
Console.Writeline("gallery id " + g.Id.ToString());
foreach(GalleryImage gi in g.GalleryImages)
{
Console.Writeline("galleryimage id " + gi.Id.ToString());
foreach(Image i in gi)
{
Console.Writeline("image id " + i.Id.ToString());
}
}
即使没有关联,以下内容也应该有效 -
int GalID = 1;
GalleryDataConext dc = new GalleryDataConext()
var pics = from g in dc.Gallary
join gi in dc.GallaryImages on g.Id equals gi.GallaryId
join i in dc.Images on gi.ImageId equals i.Id
where g.Id = GalID
select i;
要从 pic id 获取画廊,你会做 -
int PicID = 1;
var gals = from g in dc.Gallary
join gi in dc.GallaryImages on g.Id equals gi.GallaryId
join i in dc.Images on gi.ImageId equals i.Id
where i.Id = PicID
select g;
上面将返回一个IQueryable<Gallary>
并在您枚举它时执行 sql 查询。