检查linq查询是否返回结果的最快方法

时间:2019-02-24 15:24:56

标签: sql linq-to-entities

我不需要知道实际结果甚至是计数-不管结果是否为空。

我目前正在这样做,然后查看计数:

int itemsNeedingUpdated = 
    (from i in cDb.DistributionLineItems
     where (i.CompanyNo == item.dt_company_no && i.UniqueIdNo == item.Unique_Id_No) &&
            (i.DatetimeUpdated >= startingDateTimeToSearch) &&
            (i.ReceivingScanPieces > 0 || i.LoadingScanPieces > 0 || i.ActualPieces > 0)
     select i.UniqueIdNo).Count();

但是由于这将流失很多次,我想知道这是否是最快的检查方法?

针对Azure SQL使用EF 6。

1 个答案:

答案 0 :(得分:1)

您可以使用Any

bool itemsNeedingUpdated = 
    (from i in cDb.DistributionLineItems
     where (i.CompanyNo == item.dt_company_no && i.UniqueIdNo == item.Unique_Id_No) &&
           (i.DatetimeUpdated >= startingDateTimeToSearch) &&
           (i.ReceivingScanPieces > 0 || i.LoadingScanPieces > 0 || i.ActualPieces > 0)
     select i.UniqueIdNo).
     Any();

一旦找到与谓词相匹配的项目,哪一个就会纾困。