【发布时间】:2010-08-03 04:38:24
【问题描述】:
我正在尝试构建我的 linq-to-sql 表达式,以便它只生成一个 SQL 数据库查询。该查询涉及两个嵌套选择,一个简化的版本是:
var query = from person in People
where person.ID == 1234
select new PersonDetails()
{
ID = person.ID,
FirstName = person.FirstName,
LastName = person.LastName,
Addresses = from address in Addresses
where address.PersonID == person.ID
select address
PhoneNumbers = from number in PhoneNumbers
where number.PersonID == person.ID
select number
}
表达式将导致执行两个 SQL 查询。第一个加入 Person 和 PhoneNumbers 表并从中提取所需的信息。第二个查询是从 Addresses 表中进行的简单选择。如果我注释掉电话号码属性,那么只会执行一个连接 Person 和 Addresses 的查询,因此 L2S 引擎确实可以识别这两种关系。
有谁知道如何构造 LINQ 表达式,以便 linq-to-sql 只生成一个 SQL 查询?
【问题讨论】:
标签: linq linq-to-sql