2016-09-06 1 views
0

Есть ли инструмент или фреймворк для отображения таблиц SQL Server и его данных как oData. Учтите, что таблицы генерируются динамически, поэтому использование OR Mapper Entity Framework не является вариантом.Выставлять таблицы SQL Sever и его данные как oData

Нам нужен механизм для предоставления данных в виде OData без создания классов C#.

ответ

0

Здесь есть несколько вариантов.

С точки зрения кодирования вы можете построить нечто общее. .Net (C#) обертывает поддержку OData вокруг интерфейса IQueryable и атрибута [EnableQuery]. Псевдо-код ниже показывает, как вы можете сделать это в целом с помощью WebAPI2. Работающий демо может стоять в минутах:

[EnableQuery(PageSize = 100)] 
    public IQueryable Get() 
    { 
     var data = (IQueryable)<get any data from the DB as IQueryable>; 
     return Okay(data, data.GetType()); 
    } 

Имейте в виду, что фильтрация и т.д. может в конечном итоге выполняется в памяти, поэтому пытаются толкнуть как большая часть фильтрации обратно в базу данных даст лучшую производительность. В основном я использовал это с сильно типизированными объектами, а Entity Framework толкает всю фильтрацию в БД - очень мощная и очень быстрая. Имейте в виду, что OData очень гибкая, и вам необходимо оптимизировать индексы и запросы базы данных для ваших общих случаев использования.

С точки зрения базы данных, если вы работаете в Azure, у вас есть OData на несколько кликов. See this article. Дополнительный формат хранения данных Azure Table Storage - это OData от get go. Помните, что могут быть ограничения, например, я думаю, что результаты OData от SQL Azure выгружаются в 50 строк, чтобы избежать сценариев типа отказа в обслуживании, которые разбивают вашу базу данных, особенно для запросов OData по неиндексированным данным.

Если ваш SQL находится в помещении, я не думаю, что есть что-то из коробки, однако есть несколько поставщиков, которые предлагают разъемы. Here is an example from a quick Google. У меня нет связи с ними.