我正在運行一個查詢,該查詢將根據位置搜索和日期獲取結果。我有一個geography
列的位置點(緯度/經度)索引。當我搜索某個日期的事件時,它將搜索該日期內距離(半徑)內的所有事件。從實體框架中的查詢獲取多個不同的值
問題是,如果有10個事件,所有在同一天的同一位置,所有10個結果將返回到第一頁。我想將它們混合起來,並且只顯示每個位置的2-3,以使結果集有所變化,因此用戶不會只看到一個位置的所有事件。
我知道我可以使用不同的只從每個位置獲取一個事件,但我將如何使用它來獲得2-3個不同的值?
這是我的查詢到目前爲止。
viewModel.Events = dbContext.YogaSpaceEvents
.Where(i => i.EventDateTime >= adjustedSearchDate &&
i.LocationPoints.Distance(location) <= radius)
.Distinct()
.OrderBy(i => i.EventDateTime)
.Select(i => new EventResult
{
//fill view model here
})
.ToPagedList(Page, 10);