Я использую Lucene.net для создания MyListOfIds As List(Of Integer)
, который я затем передаю своей службе Linq.Затем я выполняю поиск в базе данных следующим образом:
Return _EventRepository.Read().Where(Function(e) MyListOfIds.Contains(e.ID)).ToList
Теперь я знаю, что Lucene уже заказывает MyListOfIds
в зависимости от веса, который он дал каждому термину.Отвратительно, что Linq теряет этот порядок в поиске SQL.
Мой вопрос: Как мне сохранить этот порядок сортировки при построении лямбда-выражения?
Я пыталсяиспользуя LINQPad , чтобы увидеть, как строится запрос, но из-за того, что мне пришлось объявить переменную LINQPad , я не показал результирующий SQL:то, что я пробовал в LINQPad
Dim i As New List(Of Integer)
i.Add(1)
i.Add(100)
i.Add(15)
i.Add(3)
i.Add(123)
Dim r = (From e In Events
Where i.Contains(e.ID)
Select e)
примечание: мой пример в VB.NET, но я не против, если ответы находятся в C #