Прежде всего ... извините за мой Engli sh:)
У меня есть таблица Mysql со следующими столбцами
ID | Column A | Column B
---+----------+----------
1 XYZ 123
1 ABC 234
2 KLM 987
2 XYZ 741
Я хочу найти идентификатор, в котором :
XYZ == 123 AND ABC == 234
Для тестирования я написал запрос в mysql, который выглядит так:
select distinct archivid
from archiv_values
where archivid in (select archivid
from archiv_values
where (Column_A = 'XYZ' and VALUE = '123'))
and archivid in (select archivid
from archiv_values
where (Column_B = 'ABC' and VALUE = '234'))
Этот запрос работает нормально.
В моем интерфейсе (WPF), у меня есть список текстовых полей (в списке), где пользователь может вводить данные для поиска.
Количество доступных для поиска значений другое. Из-за этого я использую foreach для просмотра списка значений:
Expression<Func<ArchivValue, bool>> searchCondition = m => true;
foreach (DocumentColumn col in lb_Filter.Items)
{
if (!string.IsNullOrEmpty(col.InputValue))
{
searchCondition = searchCondition.And(m => m.Column_A == col.Column_A && m.Value == col.InputValue);
}
}
Это приводит к тому, что если я ввожу только одно значение, например 123
, я нахожу ID 1.
Если я введу 123
и 234
, я найду 0 элементов.
Это логично для меня, но я не могу найти способ сделать это с помощью linq: - /