У меня есть сайт, где у меня есть база данных людей, и у каждого человека может быть несколько интересов, которые обрабатываются через отношения один ко многим между таблицей лиц и таблицей интересов. На сайте я хочу иметь поиск, где вы можете иметь несколько вариантов выбора интересов, и пользователь может выбрать столько, сколько они хотят. То, что я хочу вернуть, - это набор записей всех лиц, которые имеют какие-либо интересы, содержащиеся в выбранных опциях. Мой код C # asp.net и выглядит примерно так:
personResults = (from p in data.Persons
orderby p.lastName, p.firstName
select p);
И я хочу добавить что-то вроде этого, хотя я знаю, что последняя строка в следующем коде полностью поддельная. Предположим, что это мой идентификатор множественного выбора.
List<int> interestIdList = new List<int>();
if (interest.GetSelectedIndices().Length > 0) {
foreach(int selectedIndex in interest.GetSelectedIndices()){
interestIdList.Add(int.Parse(interest.Items[selectedIndex].Value));
}
personResults = personResults.Where(x => interestIdList.Contains(x.Interests[].interestID));
}
Проблема в том, что последняя строка кода. Поскольку x.Interests - это коллекция объектов интересов из базы данных, я не могу получить доступ к их интересам (как теперь работает код, который интересуется идентификаторами предметов, если у человека есть 5 интересов). Если это поможет, я могу использовать свой список интересов, чтобы создать список объектов интереса, но я все еще не могу понять, как создать запрос.
Еще раз, чтобы заявить о моей цели, я хочу, чтобы любой человек, у которого есть интерес, где идентификатор интереса находится в массиве InterestIdList. Они не все должны соответствовать; до тех пор, пока есть хотя бы одно общее значение, которое я хочу записать.