как получить ODataQueryOptions с требуемым типом

317
02 марта 2017, 22:08

Использую перегрузку метода контроллера ODATA

public IQueryable<TD> Get(ODataQueryOptions<OrdersViewsDto> options)

в которую мне приходят настройки для типа OrdersViewsDto

далее я получаю все сущности типа OrdersViews

var emp = db.OrdersViews.AsQueryable(); 

и когда пытаюсь применить опции переданные в запросе

    if (options.Top != null)
    {
        emp = options.Top.ApplyTo(emp , new ODataQuerySettings());
    }

в результате получаю ошибку

Не удается использовать выражение типа "System.Data.Entity.Core.Objects.ObjectQuery`1[Data.Entities.OrdersViews]" для параметра типа "System.Linq.IQueryable`1[Data.Dto.OrdersViewsDto]" метода "System.Linq.IQueryable`1[Data.Dto.OrdersViewsDto] Take[OrdersViewsDto](System.Linq.IQueryable`1[Data.Dto.OrdersViewsDto], Int32)"

На сколько я понимаю это оттого что из бд я получаю сущности типа OrdersViews а пытаюсь применить настройки для типа OrdersViewsDto. Вот собственно вопрос какие мне надо действия применить что бы избежать этой ошибки и получить например из объекта типа ODataQueryOptions объект типа ODataQueryOptions

Answer 1

В итоге сделал так, но если в OrdersViews полей меньше или несоответствие с OrdersViewsDto, то будут ошибки

var TEContext = new ODataQueryContext(options.Context.Model, typeof(OrdersViews), options.Context.Path);
var TEOption = new ODataQueryOptions<OrdersViews>(TEContext, options.Request);
READ ALSO
Google Calendar не запрашивает права

Google Calendar не запрашивает права

В одном проекте отрылась веб-страница с запросом прав и сохранился токен, во втором — отладчик просто зависает

331
Как в WPF менять содержимое окна?

Как в WPF менять содержимое окна?

Я новичек в технологии WPF, Есть приложение с лева есть меню, с множеством кнопок, с права пустое место для отображения представления, в зависимости...

438
Как мокнуть класс без конструктора?

Как мокнуть класс без конструктора?

Проблема с классом DbContextConfiguration, этот класс не имеет public конструктораНо для задачи требуется мокнуть этот класс

337
Как в ComboBox добавлять элементы?

Как в ComboBox добавлять элементы?

У нас есть скромная формаА там скромный ComboBox

389