Ну, sc.FeaturePattern
выглядит как Tuple
, что означает, что он не является частью вашей модели сущности / EDMX. Поэтому LINQ to Entities не знает, как перевести его на SQL. Но вы можете легко обойти это:
// extract scalar values from tuple
var featureIds = sc.FeaturePattern.Select(fp => fp.Item1.featureId);
// now do query
// ...
c => c.firstName.StartsWith(sc.FirstName)
&& c.lastName.StartsWith(sc.LastName)
&& c.addressData.Any(a => a.City.StartsWith(sc.City))
&& c.addressData.Any(a => a.StreetAddr.StartsWith(sc.Street))
&& c.addressData.Any(a => a.ZIPCode.StartsWith(sc.ZipCode))
&& c.visit.Any(v=> v.vStartDate >= sc.VisitTimeIntervalStart)
&& c.visit.Any(v => v.vStartDate <= sc.VisitTimeIntervalEnd)
// <-- to here but this ->
&& c.contact2feature.Any(
c2f => featureIds.Contains(
fid => fid == c2f.feature.featureID))