У меня есть таблица базы данных, аналогичная приведенной ниже:
Таблица с 2 столбцами (UserId и значение)
Я передам UserId вместе с 2 строки Например: userId: 1 , key1: h1 , key2: h2 для APi с похожей подписью.
Public List<T> CheckValuesForUser(string userId, string key1, string key2)
I необходимо проверить, имеет ли конкретный userId 1 значения h1 и h2. Если у пользователя нет обоих ключей, запрос должен вернуть ноль.
Я пробовал следующие запросы:
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