如何在WCF数据服务和EF中使用自定义类型

本文关键字:自定义 类型 EF WCF 数据 服务 | 更新日期: 2023-09-27 18:04:34

我已经用EF模型的基类创建了一个WCF数据服务。

我想返回一个自定义类型(一个不是在我的EF模型),但我得到错误:

The server encountered an error processing the request. Please see the service help 
page for constructing valid requests to the service.

我的自定义类看起来像:

public class MyCustomClass
{
     public string CustomProp { get; set; }
     public List<int> Ids { get; set; }
}

我怎样才能使它工作?

如何在WCF数据服务和EF中使用自定义类型

您需要将返回对象设置为数据契约:

[DataContract]
public class MyCustomClass
{
     [DataMember]
     public string CustomProp { get; set; }
     [DataMember]
     public List<int> Ids { get; set; }
}

参见:如何在WCF数据服务中接受JSON ?

链接是如何设置一个接收服务,返回值,你只是改变你的方法的返回类型。

我发现使用WCF Data Services做到这一点的唯一方法是将json字符串作为参数传递,然后将其反序列化到自定义类中。

一样:

[WebGet(ResponseFormat = WebMessageFormat.Json)]
public bool ConfigurationChanged(string jsonStr)
{
    try
    {
        MyObject obj = new JavaScriptSerializer().Deserialize<MyObject>(jsonStr);
        // ... do something with MyObject
    }
    catch (Exception)
    {
        throw;
    }
}