我想知道是否有自动(或毫不费力)的方式将SQL Server存储过程映射到Web服务?
问题是,我需要允许第三方应用程序与ERP系统交互/集成数据。该ERP提供了几个存储过程来完成该操作。这些存储过程还包含验证和大量业务逻辑。
但是,这个外部应用程序更喜欢通过Web服务。
所以,第一种方法是创建一个Web服务并将每个存储过程映射到一个方法(或者可能在不同的端点中分割)但是,我不知道是否有一些工具,如果可以使用实体框架等
答案 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("){}");
}
}
}