У меня есть список фильтров, и я хочу использовать его для запроса к таблице, где возвращаемые элементы содержат ВСЕ значения не только 1.где содержит LINQ все элементы в списке
Например, у меня есть ярлык/тегов. Я хочу вернуть записи, в которых есть теги «спорт» и «футбол». Однако «спорт» и «футбол» хранятся в списке и могут быть любыми другими тегами, которые пользователь поставляет.
Я использую структуру сущности. У меня есть таблица тегов, команд, TeamTags. Мой текущий запрос как таковой:
string _tags = "sport,football";
List<string> tags = _tags.Split(',').ToList();
var teams = (from t in db.Tags where tags.Contains(t.TagName) select t.Teams).FirstOrDefault().Select(i => i.TeamNames).ToList()
Но это вернет все команды, которые имеют «спортивный» тег не те, которые помечены как «спорт» и «футбол» только.
Если вы намереваетесь набрав тег «спорт», сначала получите список команд из всех видов спорта. Затем вы добавляете тег «футбол», который будет отфильтрован еще больше для футбольных команд. Поэтому мой код выше в основном делает OR в том месте. Я тоже хочу иметь возможность делать И.
Так пример данные в базе данных будут:
мустанги имеют спортивные и футбольные тег Mets имеет спорт и бейсбол теги
Я хочу, чтобы команда, которая имеет спортивные и футбольные тег, а не спорт или футбол теги ,
You'r e используя отношение из «Тэгов» в «Команды» в вашем коде. Есть ли способ перейти от «Команды» к их «Тэгам»? – JLRishe
Почему вы не используете 'SelectMany' и не создаете проекцию для' Contains' на эти значения? – Greg
@Greg, потому что я никогда не использовал SelectMany или не знаю, о чем вы говорите, когда говорите «произвести проекцию». – user441521