LINQ查询 - 子项目在哪里

时间:2013-07-22 12:28:34

标签: vb.net linq entity-framework

我正在使用Entity Framework和关系SQL数据库。例如,假设我有两张桌子:

Customers
Invoices

客户与发票存在一对多的关系,但并非每个客户都有发票。

我想进行查询,以获得至少有一张发票的客户。像:

Dim queryCustomersWithInvoices = From rows in context.customers
                                 Where rows.has(Invoices)

Where语句是问题,语法错误,它只表达了我的意图。

3 个答案:

答案 0 :(得分:2)

假设您在客户身上有一个发票属性......

Where rows.Invoices.Any()

应该有用。

答案 1 :(得分:1)

你可以:

  1. 使用.Any(),'where exists'的linq版本。在此解释:Exists query with LINQ
  2. 写一些类似where rows.Invoices.Count > 0
  3. 的内容

    第一种解决方案可能更快,因为我认为它不需要实际计算发票。

答案 2 :(得分:0)

如果发票属于客户的财产,您还应该能够计算发票。

Dim queryCustomersWithInvoices = From rows in context.customers
                             Where rows.Invoices.Count() >=1