У меня проблема с составлением сложного запроса. Мне в основном нужно объединить код с запросом eventByLocaiton. - PullRequest
0 голосов
/ 17 июня 2020

`

    var eventEntity = events.Select(e => new EventEntity
    {
        EventId = e.EventId,
        Name = e.Name,
        Address = e.Address,
        StartDate = e.StartDate,
        EndDate = e.EndDate,
        TicketMinPrice = e.Ticket.Select(t => t.Price).Min(),
        TicketPrices = e.Ticket.Select(t => t.Price).ToList(),
        //EventType = e.EventType.Name,


        Artists = e.EventArtist.Select(a => a.Artist.FirstName).ToList(),


        MusicGenres = e.EventMusicGenre.Select(a => a.MusicGenre.Name).ToList();

});



    var userLat = 51.5213628;
    var userLong = -0.03179300000000001;



    var eventByLocation = _dbContext.Event.FromSqlInterpolated($"SELECT event_id, accessibility,address,country,postal_code,short_description,address_nr,city, state,dress_code_id,end_date,end_time,event_type,long_description,venue_name,policy_description,policy_minimum_age,start_date,start_time,name, latitude, longitude, 111.045 * haversine(latitude, longitude,{userLat},{userLong}) AS distance_in_km FROM event JOIN (SELECT  42.81  AS latpoint,-70.81 AS longpoint) AS p ORDER BY distance_in_km").ToList();






    var size = await eventEntity.CountAsync();

    var paginated = await eventEntity.Skip(pagingOption.Offset.Value)
        .Take(pagingOption.Limit.Value)
        .ToArrayAsync();


    return new PagedResults<EventEntity>
    {
        Value = paginated,
        TotalSize = size
    };
}`

У меня есть сложный объект, который я присоединяю и сохраняю в событиях, а затем выбираю только нужные мне свойства в новом объекте eventEntity, однако мне нужно скомпоновать его с помощью хранимой процедуры eventByLocation, которая приносит результаты отсортированы по ближайшему. Кроме того, мне нужно сделать подсчет и я должен быть заинтересованным, когда я это сделаю.

Любая помощь будет оценена

...