Веб-сервис для пользовательских запросов в C # - PullRequest
1 голос
/ 12 июня 2011

Мы переходим с установки сервера ASP.NET/SQL на установку rails / mysql. Из-за этого мне нужно перенести данные из моей базы данных SQL Server, но я не могу напрямую переместить их из SQL Server в mysql, потому что есть некоторые вещи, которые необходимо сделать для каждой записи с помощью rails в фильтр.

В связи с тем, как этот процесс необходимо обрабатывать, я думаю, что мой веб-сервер rails лучше всего будет использовать веб-сервис с сервера ASP.NET и получать от него записи из базы данных SQL Server. После того, как сервер rails изменил данные, он может сохранить каждую запись в базе данных.

Я хочу вернуть простой запрос "select * from table_name", который определяется сервером rails. Короче говоря, я хочу, чтобы сервер rails отправлял «выберите * из клиентов» на сервер ASP.NET, а затем сервер asp.net возвращает список данных через XML или json.

Возможно ли это? Я знаю, что можно возвращать данные через веб-сервис, но мне интересно, можно ли определить запрос sql на сервере-потребителе.

Спасибо!

Ответы [ 3 ]

1 голос
/ 14 июня 2011

ServiceStack также упрощает эту задачу, когда всего за 1 строку кода ваши веб-службы могут автоматически возвращать данные в XML, JSON, CSV, JSV и даже HTML для удобного чтения табличных данных.

Просмотрите пример Northwind data , где следующий код - это все, что вам нужно для возврата списка POCOs клиента:

    public class CustomersService : RestServiceBase<Customers>
    {
            public IDbConnectionFactory DbFactory { get; set; }

            public override object OnGet(Customers request)
            {
              return new CustomersResponse { Customers = DbFactory.Exec(dbCmd =>
                    dbCmd.Select<Customer>()) 
            };
    }

Затем с помощью приведенного выше кода вы можете позвонить в веб-службу и вернуть все:

0 голосов
/ 12 июня 2011

Я бы вообще не пошел на веб-службы.

Вы можете экспортировать данные из SQL-SERVER в формате .cvs (назначение плоских файлов), а затем проанализировать их из RoR.Я понятия не имею, как это сделать, но очевидно, что RoR имеет встроенные в каркас инструменты ввода-вывода .cvs.

Если у вас большой объем данных, использование веб-службы будет гораздо менее эффективным, чем создание файла .cvs и его использованиеэто локально для вкладышей.

0 голосов
/ 12 июня 2011

Вы должны проверить Службы данных WCF и Службы данных ADO.NET
Я думаю, что это соответствует вашим потребностям.

Для таблицы Customers запрос к вашему DataService будет http://localhost:12345/DATABASE_NAME.svc/Customers, и вы можете легко добавить некоторые выражения фильтра к вашему запросу.

...