У меня есть экран в моем проекте «Запрос», где я могу выполнить 2 вида поиска. Я не могу понять, как сделать «нравится» или «И или ноль» в Linq для сущности.
- Простой поиск (Поиск по всем полям с помощью оператора «Мне нравится»)
- Расширенный расширенный поиск (Использование оператора «И»)
Итак, давайте возьмем эти 3 таблицы иПридумайте пример.
- Таблица клиентов (идентификатор клиента, имя, фамилия)
- Адрес (адрес, улица, город)
- CustomerOrder (OrderID, OrderName)
Базовый поиск: это то, как я бы делал это в Sql
SELECT TOP (100) C.Name,C.Surname,CA.Street,CA.City,CO.OrderName
FROM Customer C
LEFT JOIN CustomerAddress CA ON C.CustomerID=CA.CustomerID
LEFT JOIN CustomerOrders CO ON C.CustomerID=CA.CustomerID
WHERE (C.CustomerID LIKE '%' + @SearchText + '%'
OR C.Surname LIKE '%' + @SearchText + '%'
OR C.Name LIKE '%' + @SearchText + '%'
OR CA.Street LIKE '%' + @SearchText + '%'
OR CA.City LIKE '%' + @SearchText + '%'
OR CO.OrderName LIKE '%' + @SearchText + '%') )
Расширенный поиск
Это мое предложение sql where
WHERE (C.CustomerID =@CustomerID or @CustomerID ISNULL
AND C.Surname =@Surname or @Surname ISNULL
AND C.Name=@Name or @Name ISNULL
AND CA.Street =@Street or @Street ISNULL
AND CA.City =@City or @City ISNULL
AND CO.OrderName =@OrderName or @OrderName ISNULL)
AND ((ModifiedDate BETWEEN ISNULL(convert(varchar,@FromDate,101),'01/01/1901')
AND ISNULL(convert(varchar,@ToDate,101),'12/31/9999'))
Как вы делаете лайки и / или нулевые в структуре сущностей?
большое спасибо!