Полнотекстовый поиск в Linq

Версия Visual C ++ в Visual Studio 2015 Update 2 включает новый флаг в link.exe под названием /WHOLEARCHIVE, который имеет эквивалентную функциональность для опции --whole-archive для ld. Согласно документация флага :

Параметр /WHOLEARCHIVE заставляет компоновщик включать каждый объектный файл из заданной статической библиотеки или если не указана библиотека, из всех статических библиотек, указанных в команде LINK.

blockquote>

23
задан 2 revs 19 February 2009 в 14:54
поделиться

5 ответов

slighty более хороший метод (берет разряд в эффект), использование CONTAINSTABLE

String pkey = context.Mapping.GetTable(typeof(TSource)).RowType.DataMembers.SingleOrDefault(x => x.IsPrimaryKey).Name;
string query = String.Concat(@"SELECT *
    FROM ", table, @" AS FT_TBL INNER JOIN
    CONTAINSTABLE(", table, @", *, {0}) AS KEY_TBL
    ON FT_TBL.", pkey, @" = KEY_TBL.[KEY]
    ORDER BY KEY_TBL.[RANK] DESC");
return context.ExecuteQuery<TSource>(query, text);
2
ответ дан ctrlalt3nd 29 November 2019 в 03:12
поделиться

Я пытался решить точную проблему. Мне нравится писать мою логику SQL в моем LINQtoSQL, но мне был нужен способ сделать Полнотекстовый поиск. прямо сейчас я просто использую функции SQL и затем вызываю пользовательские функции, встроенные из запросов linq. не уверенный, если это - самый эффективный путь. что делает Вас, парни думают?

0
ответ дан stevenjmyu 29 November 2019 в 03:12
поделиться

Можно просто сделать что-то вроде этого

    var results = (from tags in _dataContext.View_GetDeterminationTags
                   where tags.TagName.Contains(TagName) ||
                   SqlMethods.Like(tags.TagName,TagName)
                   select new DeterminationTags
                   {
                       Row = tags.Row,
                       Record = tags.Record,
                       TagID = tags.TagID,
                       TagName = tags.TagName,
                       DateTagged = tags.DateTagged,
                       DeterminationID = tags.DeterminationID,
                       DeterminationMemberID = tags.DeterminationMemberID,
                       MemberID = tags.MemberID,
                       TotalTagged = tags.TotalTagged.Value
                   }).ToList();

Уведомление где TagName. Содержит также SQLMethods. Как просто делают использование

using System.Data.Linq.SqlClient;

для получения доступа к этому SQLMethods.

-3
ответ дан dswatik 29 November 2019 в 03:12
поделиться

dswatik - причина желания полнотекстового поиска состоит в том, что .contains переводит в

SELECT * FROM MYTABLE WHERE COLUMNNAME LIKE '%TEXT%'

, Который игнорирует любые индексы и ужасен на большой таблице.

-4
ответ дан ctrlalt3nd 29 November 2019 в 03:12
поделиться

Самое изящное решение - использовать встроенную в таблицу функцию sql и добавить ее в вашу модель

http://sqlblogcasts.com/blogs/simons/archive/2008/12/18/LINQ-to-SQL---Enabling-Fulltext-searching.aspx

6
ответ дан 29 November 2019 в 03:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: