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

时间:2011-08-05 20:47:04

标签: c# entity-framework poco wcf-data-services

我已经使用我的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; }
}

我该如何做到这一点?

2 个答案:

答案 0 :(得分:1)

您需要将退货对象设置为数据合同:

[DataContract]
public class MyCustomClass
{
     [DataMember]
     public string CustomProp { get; set; }

     [DataMember]
     public List<int> Ids { get; set; }
}

另请参阅:How to accept JSON in a WCF DataService?

Linked是如何设置接收服务,返回值只需更改方法的返回类型。

答案 1 :(得分:0)

我发现使用WCF Data 服务执行此操作的唯一方法是将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;
    }
}