Web服务的存储过程

时间:2015-05-09 20:21:35

标签: c# sql-server web-services

我想知道是否有自动(或毫不费力)的方式将SQL Server存储过程映射到Web服务?

问题是,我需要允许第三方应用程序与ERP系统交互/集成数据。该ERP提供了几个存储过程来完成该操作。这些存储过程还包含验证和大量业务逻辑。

但是,这个外部应用程序更喜欢通过Web服务。

所以,第一种方法是创建一个Web服务并将每个存储过程映射到一个方法(或者可能在不同的端点中分割)但是,我不知道是否有一些工具,如果可以使用实体框架等

1 个答案:

答案 0 :(得分: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("){}");

            }

        }
    }