假设我对AdventureWorks数据库有以下查询:
这个查询将返回所有居住在达拉斯的客户。然而,我不确定它为什么能够工作。我知道“Any”方法根据序列中是否有任何一行满足谓词返回布尔值。但是以这种方式使用时,它似乎实际上返回了满足谓词的一系列行。我猜我不确定这里到底发生了什么。
然而,以以下方式使用,“Any”如何工作就很容易理解:
var result = from customer in Customer
where customer.CustomerAddress.Any (ca => ca.Address.City == "Dallas")
select new
{
customer.Individual.Contact.FirstName,
Addresses = customer.CustomerAddress
};
这个查询将返回所有居住在达拉斯的客户。然而,我不确定它为什么能够工作。我知道“Any”方法根据序列中是否有任何一行满足谓词返回布尔值。但是以这种方式使用时,它似乎实际上返回了满足谓词的一系列行。我猜我不确定这里到底发生了什么。
然而,以以下方式使用,“Any”如何工作就很容易理解:
var result = Customer.Any (c => c.CustomerAddress.Any (ca => ca.Address.City == "Largo" ) );
返回false的原因是没有客户居住在拉戈镇。