1

我将实体框架与关系 SQL 数据库一起使用。例如,假设我有两个表:

Customers
Invoices

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

我想做一个查询,以获取至少有一张发票的任何客户。喜欢:

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

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

4

3 回答 3

2

假设您在客户上有一个 Invoices 属性...

Where rows.Invoices.Any()

应该管用。

于 2013-07-22T12:32:07.420 回答
1

你可以:

  1. 使用 .Any(),即 'where exists' 的 linq 版本。此处解释:Exists query with LINQ
  2. 写类似的东西where rows.Invoices.Count > 0

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

于 2013-07-22T12:38:30.220 回答
0

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

Dim queryCustomersWithInvoices = From rows in context.customers
                             Where rows.Invoices.Count() >=1
于 2013-07-22T12:32:36.537 回答