2011-08-05 15 views
2

私のEFモデルの基本クラスを使用してWCFデータサービスを作成しました。WCFデータサービスとEFでカスタムタイプを使用する方法

私は、カスタムタイプ(私のEFモデルではないもの)を返したかったが、私はエラーを取得:

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

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

マイカスタムクラスは次のようになります私はこの仕事をすることができますか?

答えて

0

WCFでこれを行う唯一の方法データサービスは、パラメータとしてjson文字列を渡して、それをカスタムクラスに逆シリアル化します。これは、Entity Frameworkのに通常のWCFサービスで動作しなく

[WebGet(ResponseFormat = WebMessageFormat.Json)] 
public bool ConfigurationChanged(string jsonStr) 
{ 
    try 
    { 
     MyObject obj = new JavaScriptSerializer().Deserialize<MyObject>(jsonStr); 

     // ... do something with MyObject 
    } 
    catch (Exception) 
    { 
     throw; 
    } 
} 
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?リンク

は、あなただけのリターンを変更する値を返す、受信サービスを設定する方法でありますあなたのメソッドの型。

+0

:そう同様

Darcy