У меня есть этот запрос, который был недавно изменен, чтобы разрешить поиск с использованием списков.Однако логика кажется неправильной.Моя первоначальная логика поиска была следующей:
data = data.where(u=>u.location.contains(FilterInput.RepositoryName)).ToList();
Это работало для отдельных входов, и логика имела смысл.В результатах данных проверьте, содержит ли поле местоположения переменную ввода
. Однако для обработки входов, являющихся списками, мне пришлось изменить его на нижний код, который находится в этом списке ввода, проверить, содержит ли онполе местоположения.
База данных выводит данные следующим образом:
Output = {arhde, brhje, ckio}
Это означает, что мой список ввода представляет собой небольшую часть того, чтобаза данных содержит.
FilterInput.RepositoryName = {a,b,c}
data = (from item in dbContext.Documents
join id in initialData
on item.Id equals id.DocumentId
select new DocumentsListViewModel
{
Id = item.Id,
Name = item.Name,
ApplicationName = item.ApplicationName,
ApplicationSecretKey = item.ApplicationSecretKey,
Link = item.Link,
Location = item.Location,
FileType = item.FileType,
CreatedOn = item.CreatedOn
}).ToList();
if (FilterInput.RepositoryName.Count>0)
{
data = data.Where(u => FilterInput.RepositoryName.Contains(u.Location)).ToList();
}
Не знаю, возможно ли изменить эту логику, чтобы использовать первую, но можно также разместить списки?