У меня есть этот запрос, который недавно был изменен, чтобы разрешить поиск с использованием списков. Однако логика кажется неправильной. Моя первоначальная логика поиска была следующей:
data = data.where(u=>u.location.contains(FilterInput.RepositoryName)).ToList();
Это работало для отдельных входов, и логика имела смысл. В результате проверьте, содержит ли поле местоположения входную переменную.
Однако для обработки входных данных, которые являются списками, мне пришлось изменить его на нижний код, который находится в этом списке ввода, проверьте, содержит ли он поле местоположения.
База данных выводит данные следующим образом:
Вывод = {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();
}
Я не знаю, можно ли изменить эту логику, чтобы использовать первую, но также разместить списки?
RepositoryName вводится пользователем: {a, b, c} и u. Местоположение из базы данных: {ageha, bailey, crown}.
RepositoryName - это ввод от пользователя, и это список строк со значениями ageha, bailey, crown?
No RepositoryName - это ввод от пользователя, это список значений a, b, c.
Что представляют собой a, b, c? Они объекты? Если да, то какого типа объекты?
Это просто струны. A, b, c - это часть слова, которое я хочу найти
Это u.Location также является List<string>, как FilterInput.RepositoryName? Если они оба являются списком строк, то, похоже, вы хотите сделать что-то, называемое «частичное сопоставление».





Можете ли вы добавить определение RepositoryName?