为什么查询语法中的“选择多个”不能与join一起使用

时间:2015-04-16 12:19:10

标签: entity-framework entity-framework-6

发票有很多产品,产品可以有很多X(X在这里不重要)

var query = from i in invoices
            join prod in i.products on i.id equals prod.InvoiceId
            select new MyClass{ Id = i.id, more props }

为什么加入不起作用?

我收到错误“i.product”这里的“i”在当前上下文中不存在。

1 个答案:

答案 0 :(得分:0)

join用于当您有两个单独的集合时,您希望比较这些集合的各个元素的某些属性。如果您拥有单独的未经过滤的产品集合,并且想要查找与发票ID匹配的产品,则可以使用它。例如,如果您没有定义任何导航属性,则可以使用它。

这不是您在此之后的内容:您确实拥有导航属性,并且通过使用它,实体框架将设置一些内容,以便i.products仅包含匹配的产品。您无需手动链接发票ID。

var query = from i in invoices
            from prod in i.products
            select ...;