У меня есть таблица базы данных, подобная той, что на изображении ниже.
Таблица с 2 столбцами (UserId и значение)
Я передам UserId вместе с двумя строками. Например: userId: 1, key1: h1, key2: h2 для APi с аналогичной подписью.
Public List<T> CheckValuesForUser(string userId, string key1, string key2)
Мне нужно проверить, имеет ли конкретный userId 1 значения h1 и h2. Если у пользователя нет обоих ключей, запрос должен вернуть значение null.
Я пробовал следующие запросы,
context.tableName.where(i=> i.value.Equals("h1") && i.value.Equals("h2"))
- ничего не возвращает. Я предполагаю, что этот предикат выполняется для каждой строки.Context.tableName.Where(i=> new string[]{ Key1,Key2 }.Contains(i.Value))
- возвращает значение, даже если у пользователя нет значения для Key2. Мне нужно получить результат NULL, если у пользователя нет обоих ключей.var list1= Context.tableName.Where(i=> i.Value.Equals(key1)).toList(); var list2= Context.tableName.Where(i=> i.Value.Equals(Key2)).toList(); if(list1.Count > 0 && list2.Count > 0) list1.AddRange(list2);
Может ли кто-нибудь помочь мне найти лучшее решение? Я использую Asp.Net Core 2.2
Context.tableName.Where(i=> new string[]{ Key1,Key2 }.All(x=>x == i.Value))
- person Mohammed Sajid   schedule 20.04.2020