使用 SQL 服务器存储过程存储 WCF 休息请求数据

Storing WCF rest request data with SQL Server stored procedure

我的 WCF 服务中有一个简单的接口,其中一种方法获取 myRequest 参数

public interface IService
{
    [OperationContract]
    string MyOperation(myRequest request);
}

当我从客户端发布数据时,内容类型为 application/json,因此请求正文自动反序列化为 myRequest 对象。

myRequest 是一个 WCF DataContract:

[DataContract]
public class myRequest
{
    string id;
    string name;
    List<Phone> phones

    [DataMember]
    public string Name { get; set; }
    [DataMember]
    public string ID { get; set; }
    [DataMember]
    public List<Phone> Phones { get; set; }
}

Phoneclass

public class Phone
{
    public string Number { get; set; }
    public string Type { get; set; }

    public override string ToString()
    {
        return "[" + Number + "," + Type + "]";
    }
}

好的,现在我想将请求数据存储到本地 SQL 服务器数据库中,为此我需要使用存储过程。我想将 myRequest 对象发送到 SQL 服务器并让它处理 insert/update(我想我必须保留 2 个表:人员和电话)。

我没有太多关于存储过程的背景知识,但我很乐意从你们那里得到解决这个问题的正确方法。

谢谢。

您无法将复杂对象传递给数据库,使用 CLR 存储过程、旧的普通存储过程 或其他东西也没关系。

您需要将您的请求转换为可以传递给数据库的内容。如果您知道如何在 T-Sql 中操作 XML(这可能有点棘手),那么 XML 序列化是这项工作的理想人选。

我认为放弃使用存储过程的想法并采用其他东西(如 EF)对你来说会更好。