Если вы хотите извлечь PersonAddress
+ Person
объектов, которые имеют по крайней мере общий адрес с currentPerson
, то вы можете создать запрос для этой цели напрямую:
foreach(var currentPerson in PersonsListToSave)
{
// ...
IEnumerable<string> currentAddresses =
currentPerson.Addresses.Select(personAddr => personAddr.PersonAddressesDisplay);
var matchAddresses = db.PersonAddresses.Include(p => p.Persons)
.Where(addr => currentAddresses.Contains(addr.PersonAddressesDisplay))
.ToList();
// ...
}
Я не могу попробовать этот код, но я думаю, что он должен работать правильно, создав SQL-фильтр WHERE - IN
под капотом. Пожалуйста, попробуйте и отправьте больше информации, если это не решает проблему.