2015-05-09 4 views
0

Я хотел бы знать, есть ли автоматический (или легкий) способ сопоставления хранимых процедур SQL Server с веб-службами?Сохраненная процедура для веб-службы

Проблема заключается в том, что я должен разрешить стороннему приложению взаимодействовать/интегрировать данные с системой ERP. Этот ERP предоставляет несколько хранимых процедур для этого. Эти хранимые процедуры также содержат проверку и тонны бизнес-логики.

Но это внешнее приложение предпочитает пользоваться веб-сервисами.

Итак, первый подход заключается в создании веб-службы и сопоставлении каждой хранимой процедуры с методом (или может быть разделен на разные конечные точки), но я не знаю, есть ли какой-то инструмент, если это можно сделать с помощью Entity Framework и т.д.

+1

Что такого особенного в WCF? –

ответ

0

Вы могли бы написать что-то самостоятельно, используя SMO (объекты управления Sql), если мы говорим о 2 хранимых проки не может быть стоит, но если его 100 ...

это демонстрация использования SMO. та же идея может быть использована для выписывания вашего контракта на обслуживание и т. д.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using Microsoft.SqlServer.Management.Common; 
using Microsoft.SqlServer.Management.Smo; 


    class Program 
    { 
     static void Main(string[] args) 
     { 

      Server srv = new Server("serverName"); 
      Database db = srv.Databases["myDBName"]; 

      foreach (StoredProcedure proc in db.StoredProcedures) 
      { 

       StringBuilder methodWriter = new StringBuilder(); 

       methodWriter.Append("public void " + proc.Name + "("); 

       foreach(Parameter param in proc.Parameters) 
       { 
        string csharpData = string.Empty; 

        if (param.DataType == DataType.DateTime) { csharpData = "DateTime " + param.Name; } 
        //... 

        methodWriter.Append(csharpData + ", "); 

       } 

       methodWriter.Append("){}"); 

      } 

     } 
    } 
+0

Почему вы рекомендуете OP создать службу ASMX? ASMX - это устаревшая технология и не должна использоваться для новой разработки. WCF или ASP.NET Web API должны использоваться для всех новых разработок клиентов и серверов веб-сервисов. Один из намеков: Microsoft отстранила [ASMX Forum] (http://social.msdn.microsoft.com/Forums/en-US/asmxandxml/threads) в MSDN. –

+0

Почему голос? который будет писать веб-метод для каждого proc в своей базе данных для метода вызова. Конечно, не все это болезненно – muckeypuck

+0

это была иллюстрация smo, а не рекомендация использовать какую-либо специальную технологию обслуживания. он мог очень легко выплюнуть его любым способом, который он выбирает. – muckeypuck

Смежные вопросы