Imansible convertire implicitamente il tipo System.Collections.Generic.IEnumerable in bool

Sto sviluppando un’applicazione ASP.NET MVC 4 e sto cercando di eseguire questa espressione Lambda in Entity Framework 5.

var customer = db.GNL_Customer.Where(d => d.GNL_City.FKProvinceID == advancedProvinceID || advancedProvinceID == null) .Where(d => d.FKCityID == advancedCityID || advancedCityID == null) .Where(d => d.FKDepartmentStoreID == advancedDepartmentStoreID || advancedDepartmentStoreID == null) .Where(d => d.GNL_CustomerLaptopProduct.Where(r => String.Compare(r.BrandName, brandID) == 0 || brandID == null)); 

Ottengo questo errore:

Cannot implicitly convert type 'System.Collections.Generic.IEnumerable' to 'bool'

So che l’ultima clausola where è sbagliata ma non so come correggerla.

Potresti volerne un altro .Any .Where al posto di. .Where tua .Any clausola alla fine:

 var customer = db.GNL_Customer.Where(d => d.GNL_City.FKProvinceID == advancedProvinceID || advancedProvinceID == null) .Where(d => d.FKCityID == advancedCityID || advancedCityID == null) .Where(d => d.FKDepartmentStoreID == advancedDepartmentStoreID || advancedDepartmentStoreID == null) .Any(d => d.GNL_CustomerLaptopProduct.Any(r => String.Compare(r.BrandName, brandID) == 0 || brandID == null)); 

Utilizzare Where ( Any ) nell’ultima istruzione per selezionare i clienti che hanno almeno un prodotto che soddisfa le condizioni:

 var customer = db.GNL_Customer .Where(d => d.GNL_City.FKProvinceID == advancedProvinceID || advancedProvinceID == null) .Where(d => d.FKCityID == advancedCityID || advancedCityID == null) .Where(d => d.FKDepartmentStoreID == advancedDepartmentStoreID || advancedDepartmentStoreID == null) .Where(d => brandID == null || d.GNL_CustomerLaptopProduct.Any(r => r.BrandName == brandID));