检查 linq 查询 returns 是否有结果的最快方法

fastest way to check if linq query returns results

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

我目前是这样做的,然后查看计数:

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 使用 EF 6 SQL。

您可以使用 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();

一旦找到与谓词匹配的项目,就会退出。