Я надеюсь, что название этого довольно прямолинейно. В принципе, у меня есть база данных, в которой не установлено полнотекстовое индексирование. Вместо того, чтобы устанавливать полнотекстовую индексацию, мне было интересно, есть ли способ сделать это с Linq?Поиск объекта, такого как CONTAINS или FREETEXT с использованием Linq
0
A
ответ
1
Вы можете писать запросы LINQ, использующие методы экземпляра на System.String
. Большинство провайдеров LINQ могут преобразовывать это в SQL-запросы. Например:
from customer in db.Customers
where customer.Name.Contains("foo") || customer.Name.Contains("bar")
select customer;
LINQ к Entities преобразует это что-то вроде этого:
SELECT T1.*
FROM Customers T1
WHERE T1.Name LIKE '%' + @p1 + '%'
OR T1.Name LIKE '%' + @p2 + '%'
Обратите внимание, что, когда требуется динамическое количество слов для поиска, вы можете использовать PredicateBuilder. Он позволяет создавать предикаты, содержащие инструкции OR. Переписывание его с помощью союзов также является эффективным методом. Например:
string[] searchWords;
// Define an empty set.
var customers =
from customer in db.Customers
where false
select customer;
// Union the empty set with a set for a word.
foreach (var temp in searchWords)
{
var searchWord = temp;
customers = customers.Union(
from customer in db.Customer
where customer.Name.Contains(searchWord)
select customer);
}
1
Я считаю, что вы после этого что-то вроде:
from xx in table
where uids.Contains(xx.uid.ToString())
select xx
?
Если вы после строки поиска индивидуальной, возможно:
string input = "some String";
string[] toSearchFor = GetSearchStrings();
var containsAll = toSearchFor.All(x => input.Contains(x));
Смежные вопросы
- 1. Linq .Contains или в
- 2. Поиск с ранжированием релевантности с использованием keepstable и freetext
- 3. использованием .Contains() с LINQ-to-SQL
- 4. LINQ .Startswith или .Contains проблемы в VB.NET4
- 5. Запрос Linq с использованием contains не работает
- 6. Сохранение заказа с использованием LINQ с использованием .Contains
- 7. Поиск SQLAlchemy с использованием .contains() слишком чувствителен
- 8. Поиск через HashSet с использованием .contains()
- 9. SQL Server «Необязательный» поиск FreeText
- 10. поиск с использованием linq
- 11. Поиск datatable с использованием Linq to dataset
- 12. Как использовать значение выражения выражения LINQ в выражении Contains LINQ?
- 13. Mongodb, linq driver. Как построить Contains с переменной или операциями
- 14. Полный текстовый поиск с сущностью: нельзя использовать предикат CONTAINS или FREETEXT для столбца, потому что он не является полнотекстовым индексированным
- 15. Как использовать полнотекстовый поиск с Linq?
- 16. Поиск XML с использованием LINQ
- 17. Поиск суб-объекта в коллекции MongoDB с использованием LINQ/C#
- 18. MySQL Linq с помощью .Contains (переменной) Информация
- 19. Масштабируемый freetext и параметрический поиск (C#)
- 20. LINQ SqlMethods.Like (и .Contains) не
- 21. MS-SQL 2005 поиск: условное, где предложение с freetext
- 22. Как использовать список в LINQ с помощью оператора Contains или Exist или equal
- 23. Поиск/фильтрация ASP ListView с использованием LINQ
- 24. C# LINQ .Contains возвращается пустым?
- 25. Поиск базы данных с использованием LINQ
- 26. LINQ: Как проверить CONTAINS с несколькими динамическими значениями ввода
- 27. Linq поиск списка и связанного с этим объекта
- 28. медленная работа с использованием linq 2 объекта
- 29. LINQ using Contains with entity
- 30. Запись SQL-запросов с использованием LINQ из объекта linq Список
+1 - бить меня к нему вновь .Все() ... что сказал, я чувствую, что это общее решение (пытаясь подражать FREETEXT поиска) будет реальный ресурс и производительность боров для ОП. – 2010-12-09 16:08:33
Я не думаю, что LINQ to Entities может обрабатывать оператор `All`. – Steven 2010-12-09 16:26:38