代码之家  ›  专栏  ›  技术社区  ›  Nick Allen

如何使用LINQPad跨关系进行选择?

  •  0
  • Nick Allen  · 技术社区  · 15 年前

    我有一个简单的表结构

    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;
    

    where i.Link.link_component_code
    

    相反,我只得到一个“Links”对象,它是一个EntitySet,不继续列出表字段,只列出Add、Select、Where等方法

    但是如果我反过来做的话

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

    它按预期工作

    这个实体集是什么?我错在哪里?

    2 回复  |  直到 15 年前
        1
  •  1
  •   Amy B    15 年前

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

    试试这个where子句

    where i.Links.Any(link => link.link_component_code == "x")
    
        2
  •  0
  •   David Nelson    15 年前

    每个图像是否有多个链接?如果不是,请将链接表中的image_id字段约束为唯一。然后你应该得到你期望的结果。