我正在使用Lucene.net构建一个MyListOfIds As List(Of Integer)
,然后将其传递给我的Linq服务。然后按照以下方式搜索数据库:
Return _EventRepository.Read().Where(Function(e) MyListOfIds.Contains(e.ID)).ToList
现在我知道Lucene已经根据每个词项的权重对MyListOfIds进行排序。问题是,Linq在其SQL搜索中失去了这种顺序。
我的问题是:如何在构建Lambda表达式时保留该排序顺序?
我尝试使用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#也没有关系。