如何使用LINQPad选择关系?

时间:2009-05-20 13:11:16

标签: c# linq-to-sql linqpad

我有一个简单的表结构

Images(image_id, image_library_id,...)

Links(link_id, image_id, link_component_code...)

我正在尝试使用LINQ

执行简单查询
var q = from i in Images where i.Link.link_component_code = "x" select i;

然而,LINQPad中的intellisense不提供

中的“Link”对象
where i.Link.link_component_code

相反,我只获得一个“链接”对象,这是一个EntitySet,并不会继续列出表字段只是添加,选择,Where等方法

但是,如果我以相反的方式做到这一点

var q = from l in Links where l.Image.image_library_id = 1234 select l;

按预期工作

这个EntitySet是什么,我哪里出错?

2 个答案:

答案 0 :(得分:1)

建立关系的方式,每个图像为0或更多链接(许多链接)。 Image的Links属性是相关链接记录的可查询集合。

试试这个子句

where i.Links.Any(link => link.link_component_code == "x")

答案 1 :(得分:0)

每张图片是否有多个链接?如果不是,则将Links表中的image_id字段限制为唯一。然后你应该得到你期望的结果。