So, I have this search query giving me an error now. (It didn't used too, fyi...) anyway, it's throwing "LINQ to Entities does not recognize the method 'System.String IfNullOrWhiteSpace"...
Is there a beter way of doing this?
var stringResults = _propertyRepository
.GetProperties()
.Where(
// standard fields
x => x.Address.IfNullOrWhiteSpace("").Contains(searchString)
|| x.City.IfNullOrWhiteSpace("").Contains(searchString)
|| x.WebsiteUrl.IfNullOrWhiteSpace("").Contains(searchString)
|| x.Zip.IfNullOrWhiteSpace("").Contains(searchString)
// overrides possible
|| (x.DescriptionOverride ? x.DescriptionOverrideValue.Contains(searchString) : x.Description.IfNullOrWhiteSpace("").Contains(searchString))
|| (x.NameOverride ? x.NameOverrideValue.Contains(searchString) : x.Name.Contains(searchString))
|| (x.SquareFootageOverride ? x.SquareFootageOverrideValue.ToString().Contains(searchString) : x.SquareFootage.ToString().Contains(searchString))
// tags
|| (x.TagsOverride ? x.TagsOverrideValue.Any(f => f.TagName.Contains(searchString)) : x.Tags.Any(f => f.TagName.Contains(searchString)))
// bayoptions
|| x.BayOptions.Any(g => g.BaySizeOverride ? g.BaySizeOverrideValue.ToString().Contains(searchString) : g.BaySize.ToString().Contains(searchString))
|| x.BayOptions.Any(g => g.DescriptionOverride ? g.DescriptionOverrideValue.IfNullOrWhiteSpace("").Contains(searchString) : g.Description.IfNullOrWhiteSpace("").Contains(searchString))
|| x.BayOptions.Any(g => g.ExcerptOverride ? g.ExcerptOverrideValue.IfNullOrWhiteSpace("").Contains(searchString) : g.Excerpt.IfNullOrWhiteSpace("").ToString().Contains(searchString))
// Freeform Fields
|| x.FreeFormFields.Any(g => g.NumberValue.ToString().Contains(searchString))
|| x.FreeFormFields.Any(g => g.StringValue != null && g.StringValue.ToString().Contains(searchString))
).ToList();